Solar中跨控制器引用视图!

我们都知道,使用Solar视图时,我们可以在一张视图中嵌入另一张视图,有两种方法, 方法一:使用Solar_View::template()方法 示例: Example Page 方法二:使用Solar_View::partial()方法 示例: Example Page 那么partial和template在哪里寻找视图呢?在视图中写入如下代码: var_dump($this->template('随便写什么,最好是不存在的视图')); 执行该视图,会在页面上出现调试信息,请注意看这个数组: information array ( 'name' => 'gd.php', 'path' => array ( 0 => 'Demo\\App\\Hello\\View\\', 1 => 'Demo\\Controller\\Page\\View\\', 2 => 'Solar\\Controller\\Page\\View\\', ), ) 这说明我们正在找的是gd.php视图,搜索路径有三个,本控制器(APP),本工作区(Vendor),Solar工作区。所以只要存在于这三个路径下的视图,我们都可以重用。 但是如果我想要重用不同控制器(APP)下视图呢?比如我们常见的最热帖子、最热商品,这些元素可能在多个地方会引用到,那么重用这类信息就显得非常重要了。其实方法很简单: $front = Solar_Registry::get('controller_front'); echo $front->fetch('/ajax/sample'); // $front->display('/ajax/sample'); 这样就可以了,使用这种方法可以在任意视图中显示任何其他的控制器的视图。

你可能感兴趣的:(Solar中跨控制器引用视图!)