通过附加到Laravel中的view :: composer的控制器方法传递变量

时间:2014-12-15 22:53:03

标签: php laravel

我正在尝试对我的网站模块进行评论,因此我尝试使用view::composer来运行每次调用评论视图时填充评论数据所需的查询,然后我的计划就是包括我需要评论的任何地方的评论视图,然后将其连接到我的数据库中相应的评论表。

我为评论所做的功能适合我创建的每个评论表,并且我已经使视图作曲家工作,现在唯一的事情就是获取所有评论数据的功能正在进行中在设置注释视图时由视图编辑器调用,该函数不再能够访问传递给它的id(通常它位于路径中:Route::get('/{id}', 'controller@method');)。

我一直在寻找数小时试图弄清楚如何传递变量,但没有运气..也许我错过了一些非常基本的细节,Idk,但我无法弄明白并且没有找到解决问题的方法,请帮助..

看起来应该这么简单,我已经尝试过了:

$var = Route::get('/{id}', function($id){ return $id; }

我认为可能会这样做,但结果是错误,无论响应是什么都无法转换为字符串。

1 个答案:

答案 0 :(得分:1)

选项1:访问路由参数

View::composer('comment-view', function($view){
    $id = Route::current()->getParameter('id');
});

选项2:使用视图访问id

在您的控制器中:return View::make('view-name')->with('commentId', $id);

View::composer('comment-view', function($view){
    $id = $view->commentId;
});