我在一个锂布局文件,我想回应当前控制器的名称(以后用作CSS类)。如何获取当前控制器的名称?
谢谢,aeno
我想你的意思是你在一个视图?
如果是这样,获取控制器或路由/请求的其他部分非常简单…
<?=$this->_request->controller;?>
这会让你得到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的"area"部分,等等。
下面的代码可以在任何锂布局或视图中使用,以查找当前控制器,将其转换为合适的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