Laravel 5捕捉包括视图编辑器中的视图参数


Laravel 5 catching included view params in view composer

所以我试图制作一些小部件服务,但遇到了一个问题。在我的仪表板中,我包括了一些局部视图"小部件",并将参数"设置"传递给它。我应该一切都好,但我想在我的视图编辑器中读取这个"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);
    }
}

这是一个干净的项目,但在我的主项目中,这会导致渲染器中出现无限循环。不确定这是因为一些我不应该在这里使用的变量,还是因为一些依赖性。如果发现什么,我会添加评论。