在Magento 2 模板phtml添加Form Key
开发自定义模块发现,Magento 2 表单提交的时候会自动重定向到主页。
如: 后台表单会重定向到面板页面
Magento 2 中From key是阻止伪造的跨站请求。
如何获取和设置Form key呢,接下来就具体讲解下:
在phtml中
<input type="hidden" name="form_key" value="<?php echo $block->getFormKey() ?>" />
Template里的变量值是通过Block传过来的
<?php
namespace Company\Module\Block\Adminhtml\BlockFolder;
class BlockPage extends \Magento\Framework\View\Element\Template
{
/**
* @param \Magento\Backend\Block\Widget\Context $context
* @param \Magento\Framework\Data\Form\FormKey $formKey
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Widget\Context $context,
\Magento\Framework\Data\Form\FormKey $formKey,
array $data = []
) {
parent::__construct($context, $data);
$this->formKey = $formKey;
}
/**
* get form key
*
* @return string
*/
public function getFormKey()
{
return $this->formKey->getFormKey();
}
}
或者在phtml中直接获取
<?php echo $block->getBlockHtml('formkey')?>
上面的语句将会输出类似于下面的html语句
<input type="hidden" value="7yRSvrrxnQa5B62o">
综上,Form key拿到了,你就可以顺利的提交表单了。