Литиевый каркас: как получить имя контроллера в макете - PullRequest
2 голосов
/ 22 октября 2011

Я нахожусь в файле макета лития, и я хотел бы повторить имя текущего контроллера (для использования в качестве класса CSS позже).Как я могу получить текущее имя контроллера?

Спасибо, aeno

Ответы [ 2 ]

4 голосов
/ 26 октября 2011

Полагаю, вы имеете в виду, что находитесь в View?

Если это так, довольно просто получить контроллер или другие части маршрута / запроса ...

<?=$this->_request->controller;?>

Это даст вам контроллер , но вы можете получить практически все, что вам нужно. Итак, если у вас есть маршрут, как ...

Router::connect('/{:controller}/{:action}/{:id}');

Вы можете использовать оба следующих вида:

<?=$this->_request->action;?>

<?=$this->_request->id;?>

Или у вас может быть более сложный маршрут, как ..

Router::connect('/{:id}/{:area}/{:controller}/{:action}/');

Это было бы для URL, как:

http://mysite.com/123/media/photos/edit/

Теперь вы можете сделать что-то вроде ...

<?=$this->_request->area;?> 

Чтобы получить часть URL области и т. Д. Вы поняли идею.

0 голосов
/ 29 мая 2013

Следующий код может использоваться в любом макете или представлении Lithium для поиска текущего контроллера, преобразования его в подходящее имя класса CSS и установки его в качестве атрибута класса для div:

<?php
    $controller = $this->request()->controller;
    $controller_css_class = strtolower(\lithium\util\Inflector::slug($controller));
?>

<div class="<?=$controller_css_class; ?>"></div>

Класс запроса задокументирован здесь: http://li3.me/docs/lithium/action/Request

...