有没有办法改变蛋糕2.3.5中的自动浏览器视图,但要覆盖某些内容或方法名称约定?
我想在主Controller目录的子文件夹中渲染视图,这是一个例子:
class AdministrationController extends AppController {
public function products(){
$this->render('/Administration/products/index');
}
}
我宁愿将视图存储在有组织的子文件夹中,如下所示:
- Administration
- products
- index.ctp
- edit.ctp
我的问题是:有没有办法重做这个,这样我就不必在每个动作中都使用$this->render()
?
答案 0 :(得分:1)
使用相对于相应视图文件夹的路径调用render:
$this->render('products/index')
或使用“绝对”路径调用,该路径被理解为相对于视图文件夹:
$this->render('/Administration/products/index');
这两个调用都将呈现视图文件app/View/Administration/products/index
。如果您想构建这样的视图文件 - 您可以在每个操作中调用render
或操纵viewPath变量以指向它所需的位置(在类中或在beforeFilter中)。
在问题中有Administration
,products
和index
- 所有正常的事情,但是不正常有管理员控制器。使用这种控制器结构,管理控制器将变得庞大。
通常的方法是使用admin routing并定义管理员索引:
class ProductsController extends AppController {
function admin_index() {
//
}
}