所以我试图制作一些小部件服务,但遇到了一个问题。在我的仪表板中,我包括了一些局部视图"小部件",并将参数"设置"传递给它。我应该一切都好,但我想在我的视图编辑器中读取这个"settings"参数,这样我就可以传递正确的"newData"到"小部件"视图。我发现了类似$view->getData();但是当我使用这个无限循环累加器时。有什么建议吗?
注意:我必须使用视图编辑器,并且不能在包含时传递这个"newData"。
index.blade.php
<p>
@include('widget', ['settings'=>'bla'])
</p>
一些服务提供商:
public function boot()
{
view()->composer(
'widget', 'App'Http'ViewComposers'WidgetComposer'
);
}
App''Http''ViewComposers''WidgetComposer.php
class WidgetComposer
{
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$view->with('newData', 'someArrayWithData');
}
}
小工具.刀片.php
<p>
{!! $newData !!}
</p>
好的,所以它应该是$view->getData();
class WidgetComposer
{
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$settings = $view->getData()['settings'];
$data = $settings == 'bla' ? 'got bla' : array();
$view->with('newData', $data);
}
}
这是一个干净的项目,但在我的主项目中,这会导致渲染器中出现无限循环。不确定这是因为一些我不应该在这里使用的变量,还是因为一些依赖性。如果发现什么,我会添加评论。