使用Laravel中的视图 Composers来解决这个问题
1、在App\Providers下创建一个ComposerServiceProvider类
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider {
/**
* Register bindings in the container.
*
* @return void
*/
public function boot() {
// 基于类的view composer
View::composer(
'admin.*', 'App\Http\ViewComposers\AdminComposer'
//admin视图下所有的文件渲染时都执行
//'admin.index', 'App\Http\ViewComposers\AdminComposer'
);
}
/**
* Register the service provider.
*
* @return void
*/
public function register() {
//
}
}
在boot方法中定义要监听的视图,还可以使用通配符 * 匹配所有的视图。
2、注册ComposerServiceProvider
在config/app.php文件下的providers数组中进行注册
App\Providers\ComposerServiceProvider::class,
3、创建AdminComposer类
在app\Http\下创建ViewComposers目录,并创建文件AdminComposer
<?php
/**
* Created by PhpStorm.
* User: Corpize
* Date: 2019-03-19
* Time: 17:22
*/
namespace App\Http\ViewComposers;
use Illuminate\Http\Request;
use Illuminate\View\View;
class AdminComposer {
public function compose(View $view) {
$view->with([
'admin' => 'q',
]);//填充数据
}
}
填充需要的数据,ok