Неопределенная ошибка переменной в Layouts (Laravel) - PullRequest
3 голосов
/ 17 октября 2019

я пытаюсь получить раздел из макета в laravel blade, но проблема в том, что var не определен, когда я его получу

вот мой код:

web.php:

Route::get('/pr','ProductController@carousel');

ProductController:

    public function carousel()
    {
        $Proudcts= Product::select('name','amount','dis_amount','stock','company_id','category_id','pic_url')->get();
        return view('product-carousel')->with('products', $Proudcts);
    }

product-carousel.blade.php:

@include('include.head')
<body>
@section('product-carousel')
<div class="owl-carousel owl-theme">
@foreach($products as $product)
<div class="product-carousel item ">
    <a>
        <img  src="{{$product->pic_url}}" style='height: 400px; width: 100%; object-fit: contain'/>
        <h4 lang="en_US" class="product-name-show">{{$product->name}}</h4>
        <h3 class="amount-for-product">
            Buy
        </h3>
    </a>
</div>
@endforeach
</div>
<script src="/js/owl.js" type="text/javascript" language="JavaScript"></script>
@endsection
</body>
</html>

index.blade.php:

@include('include.head')
@extends('product-carousel')
@yield('product-carousel')

как видите, я расширяю "product-carousel.blade.php" в "index.blade.php" и получаю "@section ('product-carousel')" ، проблема в $ products не существует в "index.blade.php"

, но работает в "product-carousel.blade.php"

вот ошибка: неопределенная переменная: продукты

1 Ответ

2 голосов
/ 17 октября 2019

Если вы хотите, чтобы переменная была доступна при каждом представлении, используйте композиторы представлений в AppServiceProvider 'boot function

public function boot()
{
    view()->composer(['index', 'product-carousel'], function ($view) {
        $products = \App\Product::select('name', 'amount', 'dis_amount', 'stock', 'company_id', 'category_id', 'pic_url')->get();
        return $view->with('products', $products);
    });
}

Надеюсь, это поможет

...