I have created the custom menu in the admin panel. When I click on menu option then redirect to dashboard.
My Magento v2.0.17
Menu
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
<add id="Pfay_Contacts" title="Pierre FAY Contacts" module="Pfay_Contacts" sortOrder="20" dependsOnModule="Pfay_Contacts" resource="Pfay_Contacts::contacts"/>
<add id="Pfay_Contacts::index" title="Pierre FAY Contacts" module="Pfay_Contacts" action="contacts/test/index" parent="Pfay_Contacts" sortOrder="20" dependsOnModule="Pfay_Contacts" resource="Pfay_Contacts::contacts"/>
</menu>
Route
<?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="contacts" frontName="contacts">
<module name="Pfay_Contacts" before="Magento_Backend"/>
</route>
</router>
Block Page
<?php
namespace Pfay\Contacts\Block;
use Magento\Framework\View\Element\Template;
class Contactslist extends \Magento\Framework\View\Element\Template
{
public function __construct(Template\Context $context, array $data = array())
{
parent::__construct($context, $data);
$this->setData('contacts',array());
}
public function addContacts($count)
{
$_contacts = $this->getData('contacts');
$actualNumber = count($_contacts);
$names = array();
for($i=$actualNumber;$i<($actualNumber+$count);$i++) {
$_contacts[] = 'nom '.($i+1);
}
$this->setData('contacts',$_contacts);
}
}
Controller
<?php
namespace Pfay\Contacts\Controller\Adminhtml\Test;
use Magento\Backend\App\Action;
class Index extends \Magento\Backend\App\Action
{
public function execute()
{
die('test admin view');
}
}