FASTADMIN 个别页面不使用默认的layout(默认模板)
有的应用定义了默认模板layout,(protected $layout = 'default';)在方法实现时会自动加上定义的模板内容,而个别页面如弹窗我不想要页面头部和底部等 模板内容,这时应该怎么办呢?通过网上查找:
在该页面实现方法中:
$this->view->engine->layout(false);
或重新定义
this->$layout = '';
或者自己重建一个空的模板文件如:none.html,重新指定模板:
this->$layout = 'none';
注意,如果清除了模板信息,不使用默认模板,requirejs 按需加载JS等可能会失效。有时上述操作不起作用,需要到后台清除缓存、清除浏览器缓存后再试试。
另外看到一个说法,还一个变通的办法,就是在方法实现时,给VIEW一个参数,如:
$dialog = $this->request->request('dialog', '', 'trim');
$this->view->assign('dialog', $dialog);
然后在模板文件中,一些你不想要显示的地方加上判断,来决定是否加载,比如弹窗地址后都会带一个?dialog=1的参数,只要检测到dialog参数存在就不加载头部HTML,在默认的模板文件中修改:
{empty name="dialog"}
...头部HTML
{/empty}