Magento2自定义路由实现URL重写

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

最近在写个magento2的blog插件,需要实现URL伪静态。
更多可以参考magento2自带的CMS 模块
代码如下:

先定义di文件,app/code/Mageoo/MyBlog/etc/frontend/di.xml

MageooMyBlogControllerRouterfalse70

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中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。