Magento2自定义路由实现URL重写
7天成为Magento系统架构师,现在开始学习Magento全栈开发!
《Magento2.X企业级开发实战》
最近在写个magento2的blog插件,需要实现URL伪静态。
更多可以参考magento2自带的CMS 模块
代码如下:
先定义di文件,app/code/Mageoo/MyBlog/etc/frontend/di.xml
- MageooMyBlogControllerRouter
- false
- 70
di.xml配置对应的Router class文件 app/code/Mageoo/MyBlog/Controller/Router.php
public function match(MagentoFrameworkAppRequestInterface $request)
{
$identifier = trim($request->getPathInfo(), '/');
$condition = new MagentoFrameworkDataObject(['identifier' => $identifier, 'continue' => true]);
$this->_eventManager->dispatch(
'cms_controller_router_match_before',
['router' => $this, 'condition' => $condition]
);
$identifier = $condition->getIdentifier();
if ($condition->getRedirectUrl()) {
$this->_response->setRedirect($condition->getRedirectUrl());
$request->setDispatched(true);
return $this->actionFactory->create('MagentoFrameworkAppActionRedirect');
}
if (!$condition->getContinue()) {
return null;
}
//identifier 获取到了identifier 后,就可以查找具体blogid,然后把参数分发到具体的Action处理。
$request->setModuleName('myblog')->setControllerName('index')->setActionName('index')->setParam('blogid', $blogid);
$request->setAlias(MagentoFrameworkUrl::REWRITE_REQUEST_PATH_ALIAS, $identifier);
return $this->actionFactory->create('MagentoFrameworkAppActionForward');
}
文章来源于互联网:Magento2自定义路由实现URL重写
如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。