如何重定向到愿望清单控制器以在magento2中添加产品

问题描述 投票:0回答:1

我有一个问题让我被封锁,我需要帮助!

通过使用knockoutJs和控制器来获取form_key,我试图重定向到愿望清单,以便根据网址添加产品:wishlist/index/add

我尝试通过以下方式做到这一点: 在淘汰赛中Js:

addToWishlist(productRelatedId) {
    console.log("product id", productRelatedId);
    const params = {
        'productId': productRelatedId,
    };
    var url = urlBuilder.build('related/wishlist/data');
    /*var url = '/test_route/index/test';
    var param = {eventid: attribute1.value};*/
    $.ajax({
        url: url,
        data: params,
        type: "GET",
        success : function (response) {
            console.log(response);
        }
    });
}

在控制器中:

<?php

namespace Devlat\RelatedProducts\Controller\Wishlist;

use Magento\Framework\App\Action\HttpGetActionInterface; 
use Magento\Framework\App\RequestInterface; 
use Magento\Framework\Controller\ResultFactory; 
use Magento\Framework\Data\Form\FormKey;

class Data implements HttpGetActionInterface
{
    /**
     * @var FormKey
     */
    private $formKey;
    /**
     * @var ResultFactory
     */
    private $resultFactory;
    /**
     * @var RequestInterface
     */
    private $request;

public function __construct(
    FormKey $formKey,
    ResultFactory $resultFactory,
    RequestInterface $request
)
{
    $this->formKey = $formKey;
    $this->resultFactory = $resultFactory;
    $this->request = $request;
}

public function execute()
{
    $formKey = $this->formKey->getFormKey();
    $data = $this->request->getParams();
    $params = [
        'form_key'  =>  $formKey,
        'product'   =>  $data['productId'],
    ];
    $redirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
    $redirect->setUrl('wishlist/index/add', $params);

    return $redirect;
}`

我按预期收到了productId,但这永远不会重定向我,我做错了什么?或者是我遗漏了什么?

谢谢!我将非常感谢您的帮助!

knockout.js controller e-commerce magento2 magento2.4
1个回答
0
投票

你尝试过这样的事情吗?

<?php
namespace Iqnis\Test\Controller\Wishlist;

use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\Controller\ResultFactory;

class Data implements HttpGetActionInterface
{
    /**
     * @var ResultFactory
     */
    private $resultFactory;

    public function __construct(
        ResultFactory    $resultFactory
    )
    {
        $this->resultFactory = $resultFactory;
    }

    public function execute()
    {
        $params = [
            'form_key' => 'MY_FORM_KEY',
            'product' => 'MY_PRODUCT_ID'
        ];
        $redirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
        $redirect->setPath('test/wishlist/add', $params);

        return $redirect;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.