2017-05-27 70 views
1

我試圖使用View :: share將數據傳遞給我所有的視圖。我所做的就是這樣在我的AppServiceProvider上在Laravel 5.3中使用View :: share

public function boot() 
    { 
     $stok = Produk::where('jumlah_stok', 0); 
     View::share('stok', $stok); 
    } 

當我試圖檢查我的觀點。它顯示這樣的錯誤htmlspecialchars() expects parameter 1 to be string, object given (View: E:\xampp\htdocs\sippo\resources\views\master.blade.php)

<ul class="nav"> 
        @if(Auth::user()->admin==0) 
         <li><a href="/"><i class="lnr lnr-home"></i><span>Dashboard{{$stok}}</span></a></li> 

我是錯的還是有別的我應該做的?

回答

1

這有幾個問題。

第一:

通過這樣做:Produk::where('jumlah_stok', 0)你得到一個查詢生成器對象。我想,你希望一個單一的記錄,所以你應該做的:Produk::where('jumlah_stok', 0)->first()


號之二:

當您嘗試使用你的變量在你看來,你用雙括號({{$stok}}) 。 Laravel將清理這個輸入,並試圖強制通過htmlspecialchars(),這將不起作用,因爲htmlspecialchars()需要一個字符串,現在,您正在爲它提供一個查詢生成器對象。如果您希望在視圖中使用unsanitized變量,請使用以下語法:{!! $stok !!}


號之三:

即使你同時更新以前的事情,你最有可能仍無法與通緝的結果結束了,因爲你一呼應收集到一個視圖。現在,我不知道數據庫表的結構,但假設Product表有一行,名爲name,您必須在您的視圖中執行以下操作:{{ $stok->name }}(* {!! $stok->name !!}也可以,但它會被放棄)。

希望這有助於。乾杯!

+0

非常感謝你 –