我正在按照Laracast的教程将数据传递给partials。[注意:使用Laravel 5.3]我已完成视频中的每一步,但我在部分(_nav)中得到未定义的变量错误我确实经历了视频中的所有评论,其中一些也有同样的问题,但没有任何解决方案。不知道出了什么问题。这是因为我正在使用Laravel 5.3而且教程是在Laravel 5上制作的
以下是我的代码:
在config/app.php
App\Providers\ViewComposerServiceProvider::class,
自定义服务提供商`ViewComposerServiceProvider.php
<?php
namespace App\Providers
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider
{
public function boot()
{
$this->composeNavigation();
}
public function register()
{
//
}
private function composeNavigation(){
view()->composer('partials._nav','App\Http\Composers\NavigationComposer');
}
}
NavigationComposer.php
<?php
namespace App\Http\Composers;
use Illuminate\Contracts\View\View;
use App\Tour;
class NavigationComposer{
public function compose( View $view)
{
$view->with('latest',Tour::latest()->first());
}
}
部分代码(partials._nav
)
<li><a href="#">{{$latest->title}}</a></li>
答案 0 :(得分:1)
如您所知,教程视频是在Larave 5上制作的,而您是在5.3中完成的。并且在视频中提及或说实践的方法在laravel 5.3中不起作用[不完整]。你是正确的创建自定义服务提供程序和类来处理查询请求。
在ViewComposerServiceProvider.php
移除composeNavigation()
指南中,在boot()
方法中添加以下内容
View::composer(
'partials/_nav', 'App\Http\Composers\NavigationComposer'
);
其他代码似乎都很好。这是官方的documentation