id and frontName in routes config file


The standard router URL structure is {frontName}/{actionPath}/{action}

(standard router class: magento\framework\App\Router\Base.php::match)

So, the catalog/product_compare/add correspond to vendor\magento\module-catalog\Controller\Product\Compare\Add.php

The naming convention for layout.xmls is {route id}_{controller name}_{action name}.xml

Practice tests

You see this code in etc/frontend/routes.xml:

<route id="mymodule" frontName="user-subscriptions">
    <module name="MyCompany_MyModule"/>

You have placed a controller in Controller/Index/Subscribe.php.
At what URL would you visit the controller listed above?
A. /mymodule/index/subscribe
B. /mymodule/subscribe
C. /user-subscriptions/subscribe
D. /user-subscriptions/index/subscribe

Answer D

You see this code in etc/adminhtml/routes.xml:

<route id="mymodule" frontName="user-subscriptions">
    <module name="MyCompany_MyModule" />

You have placed a controller in Controller/Index/Subscribe.php.
If you want to create layout XML instructions for this controller, what would be the layout XML’s filename?
A. user_subscriptions_subscribe_[ACTION NAME].xml
B. user_subscriptions_index_subscribe.xml
C. mymodule_index_subscribe.xml
D. mymodule_subscribe_[ACTION NAME].xml

Answer C


Today we are going to use route to rewrite controller.

We’ve created a simple module VendorName_TestModule.


<?xml version="1.0" ?>
<config xmlns:xsi="" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route frontName="test_user" id="test">
            <module name="VendorName_TestModule"/>
        <route id="customer">
            <module name="VendorName_TestModule" before="Magento_Customer" />
namespace  VendorName\TestModule\Controller\Account;

class Login extends\Magento\Framework\App\Action\Action
    public function execute()
        echo 'customer login';

Ok, after we visit, we will go into our controller.


Why to keep id and frontName same in magento 2 routes config file?
Magento 2 Routing


电子邮件地址不会被公开。 必填项已用*标注