简体   繁体   English

Magento 2:将参数从 controller 传递到 phtml 视图

[英]Magento 2: passing parameters from controller to phtml view

There's a way to passing parameters from controller to phtml view using PageFactory class?有一种方法可以使用 PageFactory class 将参数从 controller 传递到 phtml 视图?

Controller code: Controller 代码:

use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\View\Result\Page;
use Magento\Framework\View\Result\PageFactory;
use MyModule\Services\Service\CurlService;

class Index extends Action implements HttpGetActionInterface
{

protected $resultPageFactory;
protected $curlService;

public function __construct(
    Context $context,
    PageFactory $resultPageFactory,
    CurlService $curlService
) {
    parent::__construct($context);

    $this->resultPageFactory = $resultPageFactory;
    $this->curlService = $curlService;
}

public function execute()
{
    if(isset($_GET['action']) && $_GET['action'] == true)
    {
        $response = json_decode($this->curlService->response());
        switch($response->status)
        {
            case 'ok': $msgReturn = 'Successfull'; break;
            default:   $msgReturn = 'Error'; break;
        }
    }
    
    $resultPage = $this->resultPageFactory->create();
    $resultPage->setActiveMenu(static::MENU_ID);
    
    $resultPage->getConfig()->getTitle()->prepend(__('Page Title'));
    
    return $resultPage;
}

I need passing $msgReturn using PageFactory to the corresponding view我需要使用 PageFactory 将 $msgReturn 传递给相应的视图

To add data to your phtml block, simply enter this example in the controller where you set your data.要将数据添加到您的 phtml 块,只需在您设置数据的 controller 中输入此示例。

use Magento\Framework\View\Result\PageFactory;

$page = $this->pageFactory->create();
$block = $page->getLayout()->getBlock('block_alias');
$block->setData('name_var', $data);

And then in the phtml file然后在 phtml 文件中

$data = $block->getData('name_var');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM