I'm having some issues setting up admin routing.
My menu.xml
file is as follows, note the custom route /manufacturer/grid.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
<add id="Amrita_Manufacturer::manufacturers_second_level"
title="Manufacturers"
module="Amrita_Manufacturer"
sortOrder="9999"
resource="Amrita_Manufacturer::manufacturer"
parent="Magento_Catalog::inventory"
action="/manufacturer/grid"
/>
</menu>
routes.xml
looks like this
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="admin">
<route id="manufacturer" frontName="manufacturer">
<module name="Amrita_Manufacturer" />
</route>
</router>
</config>
and my Index.php
file is located in the following directory Amrita\Manufacturer\Controller\Adminhtml\Grid
Am i doing something wrong, I've tried a number of different suggestions and the menu link just redirects to the dashboard page?
Best Answer
As per the Magento routing, The router is looking for /manufacturer/grid/Index not manufacturer/grid. This means admin Controller should be placed root\app\code\Amrita\Manufacturer\Controller\Adminhtml\Grid\Index.php
Please refer the code added for quick reference.
\app\code\Amrita\Manufacturer\etc\adminhtml\routes.xml
\app\code\Amrita\Manufacturer\etc\adminhtml\menu.xml
\app\code\Amrita\Manufacturer\Controller\Adminhtml\Grid\Index.php
\app\code\Amrita\Manufacturer\view\adminhtml\layout\manufacturer_grid_index.xml
\app\code\Amrita\Manufacturer\Block\Adminhtml\Manufacturer\Grid.php
Make the template as well as, Hope this helps.