2017-05-27 101 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

非常感谢你 –