我使用 cakephp 方法来更改布局。这里看起来像$this->viewBuilder()->setLayout('admin');我见过viewBuilder Class,他们没有使用任何构造。那么对于调用方法setLayout,为什么我需要使用 className like viewBuilder()。起初我以为这是一种嵌套方法,但事实并非如此。
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
查看cake.org上的 API ,您可以看到方法(而不是类)viewBuilder()在 trait 中定义ViewVarsTrait并返回一个ViewBuilder对象(即让您获得正在使用的视图构建器)。
这个ViewBuilder对象可以访问方法setLayout()。
这就是您使用的原因:$this->viewBuilder()->setLayout('admin');
来自cakephp.org 的源代码
26: trait ViewVarsTrait
27: {
...
/**
52: * Get the view builder being used.
53: *
54: * @return \Cake\View\ViewBuilder
55: */
56: public function viewBuilder()
57: {
58: if (!isset($this->_viewBuilder)) {
59: $this->_viewBuilder = new ViewBuilder();
60: }
61:
62: return $this->_viewBuilder;
63: }
...
注意:有关什么是特征以及如何使用它们的更多信息。
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消