knockout.js 如何重定向到wishlist控制器以在magento2中添加产品

nnvyjq4y  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(86)

我有一个问题,让我封锁,我需要帮助!
通过使用knockoutJs和一个控制器来获得一个form_key,我试图重定向到wishlist,以便根据url添加产品:wishlist/index/add
我试着用以下方法来做这件事:在击倒J中:

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;
}`

我收到了预期的产品ID,但这内弗斯重定向我,我做错了什么?还是我错过了什么?
谢谢!我很感激你的帮助!

u0njafvf

u0njafvf1#

你试过这样的东西吗?

<?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;
    }
}

相关问题