Laravel 视图模块共享数据

发布日期 2024-01-19

创建一个新的服务提供者类

php artisan make:provider AbcProvider

修改服务提供类文件

// 引入view类
use Illuminate\Support\Facades\View;
// 修改boot()
public function boot()
{
    // View::composer('*',调用的控制器)
    // * 全局共享
    View::composer('*','App\Http\Controllers\CommonController');
}

注册服务

修改 config\app.php Autoloaded Service Providers部分

    'providers' => ServiceProvider::defaultProviders()->merge([
        //用来为所有视图共享数据
        App\Providers\ComposerServiceProvider::class,
    ])->toArray(),

完善 CommonController

public function compose(View $view){
    //与所有视图共享数据
    $links = Link::orderBy('created_at', 'desc')->get();
    $view->with([
        'links_list' => $links,
    ]);
}

视图调用

{{$links_list}}