【发布时间】:2018-06-18 07:02:21
【问题描述】:
我正在尝试使用 AppServiceProvider 中的引导方法将数据传递到视图,并按照 Laracast 基础视频之一中概述的步骤进行操作。但是,在尝试使用此变量时,我的控制器出现错误。
在我的 AppServiceProvider 中:
public function boot()
{
view()->composer('home', function($view){
$view->with('current', Post::orderBy('created_at', 'desc')->first());
});
}
所以据我所知,这应该将数据传递到我的主视图,这样我就不需要在控制器中为该视图提供的所有方法中继续引用它。然后我有一个带有以下方法的 homeController:
public function index()
{
//Get user
$user = Auth::user();
//OMDB API setup - Get Movie name, remove spaces, add into API request
$movie_one = str_replace(" ", "+", $current->movie_one);
$movie_two = str_replace(" ", "+", $current->movie_two);
return view('home', compact(array('user')));
}
以前我在此方法中添加了一个名为 current 的变量以从我的 Post 表中获取条目,但想将其添加到 AppServiceProvider 中,因为我必须在其他方法中重新声明它出色地。我遇到的问题是我尝试在此方法中再次使用 $current 对象,但它不可用?我收到以下错误:
ErrorException in homeController.php line 30:
未定义变量:当前
我可以在这里做什么?我可以将该数据从控制器和主视图传递到控制器吗?还是不可能?
【问题讨论】: