Неопределенная переменная: продукт в представлении блейда

#laravel #variables #undefined #laravel-blade

#laravel #переменные #не определено #laravel-блейд

Вопрос:

 <div class="row">
    @foreach($product as $data)
        <div class="col-lg-4 col-md-6 mb-4">
            <div class="card h-100">
                <a href="#"><img src="{{ asset('image/product_image/'.$data->product_image) }}" alt="photo"></a>
                <div class="card-body">
                    <h4 class="card-title">
                        <a href="#">{{ $data->product_name }}</a>
                    </h4>
                    <h5>{{ $data->product_price }}</h5>
                    <p class="card-text">{{ $data->product_description }}</p>
                </div>
                <div class="card-footer">
                    <small class="text-muted">amp;#9733; amp;#9733; amp;#9733; amp;#9733; amp;#9734;</small>
                </div>
            </div>
        </div>
    @endforeach
<!-- /.row -->
</div>
  

Комментарии:

1. Покажите свой код связанного метода.

2. добавьте переменную продукта из контроллера.

3. $product Переменная не существует в вашем блейде. Может быть, так и должно быть $products ?

4. Что находится в вашем контроллере? Вы отправили product в представление?

5. Загрузить метод вашего контроллера здесь?

Ответ №1:

Сначала соберите то, что вы хотите, в контроллере. Это может быть что-то вроде этого:

 $product = Product::all();
  

И затем вы должны отправить product переменную в представление. Что-то вроде этого:

 return view('path.to.view', compact('product'));
  

Кстати. лучше использовать множественную форму products .

Ответ №2:

 You can add the code in the blade to retrieve all the products from the product model    


<div class="row">
    @php
    $product = AppProduct::all();
    @endphp
        @foreach($product as $data)
            <div class="col-lg-4 col-md-6 mb-4">
                <div class="card h-100">
                    <a href="#"><img src="{{ asset('image/product_image/'.$data->product_image) }}" alt="photo"></a>
                    <div class="card-body">
                        <h4 class="card-title">
                            <a href="#">{{ $data->product_name }}</a>
                        </h4>
                        <h5>{{ $data->product_price }}</h5>
                        <p class="card-text">{{ $data->product_description }}</p>
                    </div>
                    <div class="card-footer">
                        <small class="text-muted">amp;#9733; amp;#9733; amp;#9733; amp;#9733; amp;#9734;</small>
                    </div>
                </div>
            </div>
        @endforeach
    <!-- /.row -->
    </div>
  

Ответ №3:

Ваш код должен быть таким

index Метод контроллера,

 public function index()
{
       $product = Product::all();
       return view('path', compact('product'));
}