2016-01-06 59 views
1

所以我试图做一些小部件服务,但有一个问题。在我的仪表板中,我包括部分视图“小部件”的数量并传递给它的参数“设置”。一切都应该对我好,但我想在我的视图作曲家阅读这个'设置'参数,所以我应该能够正确的'newData' '小部件'视图。我发现像$ view-> getData();但是当我用这个无限循环accurs。有什么建议么?Laravel 5捕捉包含查看参数在视图作曲家

注:我必须使用视图作曲家,而不能通过这个'newData',而包括。

index.blade.php

<p> 
    @include('widget', ['settings'=>'bla']) 
</p> 

一些服务提供商:

public function boot() 
{ 
    view()->composer(
     'widget', 'App\Http\ViewComposers\WidgetComposer' 
    ); 
} 

应用程序\ 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> 

回答

0

好吧,所以它应该是$ 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); 
    } 
} 

这工作干净的项目,但是在我的主要项目中,这会导致渲染器无限循环。不知道这是否是因为我不应该在这里使用的某些变量,或者是因为某些依赖项。如果发现某些东西,我会添加评论。