怎么在模板中引入另个action的页面

是这样的,小弟有个需求,blade模板中想放一块侧边栏区域是最近的新闻, 新闻是从数据库查的。该侧边栏区域的页面通过controller.action跳转的,所以希望在模板中直接像@include一样引入这块区域,有什么好的实现方法。

举个例子:淘宝有一小块区域是显示个人最近搜索商品的,每个页面都有这块区域,这个区域很明显要通过action查询数据库后渲染出来,再拼接到每个页面上。 问题是:怎么在模板中引入这块区域。

(ps:小弟以前写java的, blade模板中的@include 相当于jsp中得 jsp:include
而我要的方法是类似于jsp中 c:import 的方法)
已邀请:

zhuzhichao

赞同来自: FiveSay

我一般是这样做的。

步骤 1 :
使用view的视图组件功能
php
View::composer('profile', function($view)
{
$view->with('count', User::count());
});

这里你可以绑定你的数据到这个指定模板了。

步骤 2:
再在你需要使用的controller下面的__construct函数中执行这段代码,然后在你直接 @include 这个模板就可以了。

建议:
如果多个controller需要这个模块的话,可以封装成 trait ,接着再在需要的controller引用并调用。

夜小陌

赞同来自:

已经找到一个解决办法:
调用Php自带的函数file_get_contents( )
例如:<?php echo file_get_contents( route('index') ) ?>
1.不知道laravel有没有自己的解决办法。

FiveSay - 成武

赞同来自:

App::make('DemoController@method');

要回复问题请先登录注册