Yii:$app->controller
получает текущий контроллер. Не важно где вы находитесь. Скорее всего вы имели ввиду роутинг между
frontend и
backend.
Что бы во
frontend иметь возможность формировать ссылки на контроллеры
backend необходимо вo
frontend добавить новый
urlManager
В \progect\frontend\config\main.php добавьте следующий компонент
'urlManagerBackend' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'http://yoursitedomain.ru',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(__DIR__ . '../backend/routes.php'),
],
После это вы можете легко создавать ссылки на
backend из
frontend используя второй менеджер
Yii::$app->urlManagerBackend->createUrl(['controller/action', 'parametr1' => 'value1']),
Обратите внимание что правила роутинга вынесены в отдельный файл т.к. эти правила будут использоваться как в urlManager
backend, так и в urlManagerBackend во
frontend. Это избавляет нас от дублирования.
Аналогичным образом вы сможете настроить формирование ссылок на
frontend из
backend
Если вам нужно именно получить все роуты в системе, то можно посмотреть как это реализовано популярном в
расширении RBAC