假设我有一个模板default.ctp
,无论如何我可以将该模板用于多个控制器,或者在模板丢失时将其设置为后备模板?
Ex:localhost/users/login/
调用UsersController->login
,尝试查找login.ctp
。如果缺少login.ctp
,我可以改为使用default.ctp
吗?
答案 0 :(得分:1)
default.ctp是布局文件,将在所有情况下使用,除非您明确指示不要:
$this->viewBuilder()->layout('');
虽然您的示例中的login.ctp是用于登录操作的 view文件。因此,它们不是替代品,而是合并显示最终产出的合作伙伴。无论是否存在视图文件,布局/模板都将始终存在。如果您不想使用任何文件显示输出。只需写下:
$this->render(false);
或
$this->autoRender = false;
只有在您专门调用Controller :: render()方法时才会调用视图文件。