用户登录

我们先去创建一个新的 ServiceProvider .. 使用命令行很方便 .. 打开终端 .. 进入到 Laravel 项目所在的目录 .. 然后用 php artisan make:provider 这个命令 .. 后面加上要创建的 Provider 的名字 .. 这里我们叫它 ComposerServiceProvider ..

php artisan make:provider ComposerServiceProvider

回车执行一下 .. 成功以后,回到编辑器 .. 打开 app/Providers .. 这里可以找到刚才创建的 ComposerServiceProvider .. 下面我们还得告诉 Laravel 一下,自己创建的这个 ServiceProvider 的位置 ..

打开 config 目录下面的 ... app.php .. 找到 providers 这个数组 .. 在最后添加一个 .. App\Providers\ComposerServiceProvider::class,

保存 .. 再打开 ComposerServiceProvider .. 在 boot 这个方法里面,可以用一下 view() .. 接着是 composer 这个方法 .. 它的第一个参数是要组合使用的视图的名字 .. 这里输入一个 layout.nav .. 意思就是,如果有视图组合使用 layout 目录下的 nav 这个视图 .. 就调用一下这个 composer ..

它的第二个参数可以是一个匿名函数 .. 这个函数接收一个 $view 参数 .. 在它里面,再用一个 $view ,使用一下 with 方法 .. 把得到的数据交给视图 .. 先是数据的名字 .. notifications .. 然后是具体的值 .. 这个值可能是通过一些运算得到的 .. 这里为了简单,我们直接设置一个数字 ..

保存 .. 再打开 MovieController 这个控制器 .. 这里我们就不再需要传递 notifications 这个数据了 .. 因为在它使用的 list 这个视图里面,组合使用 layout 下面的 nav 这个视图的时候,会调用视图的 Composer,在这个视图的 Composer 里面,我们已经得到了数据并且把它传递给了这个视图 ..

在找一个方法去用一下这个视图 .. 比如这个 show 方法 .. 同样不需要传递 notifications 这个数据 ..

保存一下 .. 回到浏览器 .. 先访问一下 movie 这个地址 .. 报了一个错 .. 回过再看一下 .. 是因为这里少了一具分号 .. 保存 .. 再回到浏览器 .. 刷新 ..

这里会显示 layout 下面的 nav 这个视图里的东西 ..

再试一下访问 movie/3 .. 同样在这个页面上会显示 layout 下面的 nav 这个视图的东西 .. 这个视图里用的 notifications 这个数据是在它的 Composer 里面得到的。

使用视图的 Composer《 Laravel 5:视图 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点