提问者:小点点

Laravel:访问视图编写器在以上文件中的数据


我有一个名为statistics.blade.php的视图编写器文件,应用程序中的每个页面都可以访问该文件(也包括在仪表板中)。 在dashboard页面上,相同的数据集以tiles形式显示。

class StatisticsComposer
{
    public function compose(View $view)
    {
        # models
        $ModelA  = new ModelA();
        $ModelB  = new ModelB();
        $ModelC  = new ModelC();

        ...

        # binding data
        $view->with('arrayStatistics', [
            'ModelA'  => $ModelA->_someMethod(),
            'ModelB'  => $ModelB->_someMethod(),
            'ModelC'  => $ModelC->_someMethod(),

            ...
        ]);
    }
}

我需要访问dashboard索引文件上的这个ArrayStatistics数组。 有没有可能。。?


共1个答案

匿名用户

在您创建了statisticsComposer之后,您需要在service Provider中boot它。

创建名为ComposerServiceProvider的服务提供程序,例如;

class ComposerServiceProvider extends ServiceProvider
{
    public function boot()
    {
        View::composer(['statistics'], StatisticsComposer::class); // assuming it is in `resources` folder

        // other view composer bindings...
    }
}

和app.php的providers数组,例如;

'providers' => [
     // ... other providers
     App\Providers\ComposerServiceProvider::class,
],

$ArrayStatistics将可以在statistics.blade上访问。

编辑:我认为为了直接使用/访问,最好不要使用ArrayStatistics,而是直接使用ModelAModelB