我有一个名为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
数组。 有没有可能。。?
在您创建了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
,而是直接使用ModelA
,ModelB
。