在Laravel 5.3中使用View :: share

时间:2017-05-27 00:28:20

标签: php laravel

我正在尝试使用View :: share将数据传递给我的所有视图。我所做的就是在我的AppServiceProvider

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 个答案:

答案 0 :(得分:1)

这有一些问题。

第一名:

通过执行此操作:Produk::where('jumlah_stok', 0)您将获得一个查询构建器对象。我假设你想要一条记录,所以你应该这样做:Produk::where('jumlah_stok', 0)->first()

第二名:

当您尝试在视图中使用变量时,使用双括号({{$stok}})。 Laravel将清理此输入,并尝试强制通过htmlspecialchars(),这将无效,因为htmlspecialchars()需要一个字符串,而现在,您正在为它提供一个查询构建器对象。如果您希望在视图中使用未经过处理的变量,请使用以下语法:{!! $stok !!}

第三名:

即使你要更新以前的所有内容,你很可能仍然不会得到想要的结果,因为你会将一个集合回显给一个视图。现在,我不知道数据库表的结构,但是假设Product表有一行名为name,您必须在视图中执行以下操作:{{1} }(* {{ $stok->name }}也可以使用,但它会被取消确定。

希望这有帮助。干杯!