视图组件建立完成之后,可以在组件内部写公共的组件可用变量,方便多个地方使用
如果想把数据共享给所有视图,只要在服务提供者的boot方法里写入
public function boot(){
view()->share('key','value');
}
添加服务提供者
php artisan make:provider ComposerServiceProvider
服务提供者文件
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider{
public function boot()
{
//绑定多个视图文件,指定可以在那个视图文件中使用视图组件
view()->composer(['profile','welcome'], 'App\Http\ViewComposers\ProfileComposer');
}
}
视图组件
随便放到那个文件夹下面,比如你可以创建一个app/Http/ViewCompose,把文件ProfileComposer放入,
<?php
namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
//use Illuminate\Users\Repository as UserRepository;
class ProfileComposer
{
public function compose(View $view)
{
$view->with('count', '$this->users->count()');//在视图文件里调用{{$count}}
$view->withName('profile.test');//在视图文件里调用{{$Name}}
}
}