laravel把数据共享给所有的视图

作者:袖梨 2022-06-25

有时候,你可能需要共享一份数据给所有的视图,你应该使用视图工厂(View Factory)的share方法。通常,我们在服务提供者的boot方法中调用share方法来完成注册。如果需要同时共享多份数据,你可以将所有对share方法的调用放在一个服务提供者中(AppServiceProvider或者其他),或者单独的为每个需要共享的数据建立一个服务提供者。

 代码如下 复制代码

 
namespace AppProviders;
 
class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        view()->share('key', 'value');
    }
 
    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

例子

里面的 public function index() 的数据
如何 给 HomeController.php 里面的 public function index()

在 ProductController.php 里面

$types = TypeSml::all();
$type = Type::all();
view()->share('types', $types);
view()->share('type', $type)
全选复制放进笔记HomeController.php

怎么调 ProductController.php 里面的 数据呢


解决办法

通常,需要在 服务提供者的 boot 方法中调用 share 方法,你可以将其添加到 AppServiceProvider 或生成独立的 服务提供者来存放

 代码如下 复制代码

namespace AppProviders;
class AppServiceProvider extends ServiceProvider {
/**
* 启动所有应用服务 *
* @return void
*/
public function boot() {
view()->share('key', 'value'); }
/**
* 注册服务提供者 *
* @return void */
public function register() {
// }
}

相关文章

精彩推荐