2016-01-06 30 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); 
    } 
} 

這工作乾淨的項目,但是在我的主要項目中,這會導致渲染器無限循環。不知道這是否是因爲我不應該在這裏使用的某些變量,或者是因爲某些依賴項。如果發現某些東西,我會添加評論。