Laravel 5 在视图编辑器中捕获包含的视图参数

Laravel 5 catching included view params in view composer

所以我正在尝试制作一些小部件服务,但遇到了一个问题。在我的仪表板中,我包括部分视图的数量 'widget' 并传递给它参数 'settings'。一切对我来说应该没问题,但我想在我的视图作曲家中阅读这个 'settings' 参数,所以我应该能够传递正确的 'newData' 到 'widget' 查看。我发现了类似 $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');
    }
}

widget.blade.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);
    }
}

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