Я пытаюсь сделать тележку для покупок в Laravel, но все еще учусь.

В корзине я пытаюсь распечатать сведения о товарах, находящихся в корзине, а также их количество.

Подробная информация о нескольких продуктах в тележке представлена ​​в $prod, а количество - в $cart. Я использую foreach для доступа к каждому продукту в корзине, а также к его количеству.

В объяснительной форме я пытаюсь сделать это:

@foreach( $prod as $p )
    <td>Quantity = {{ $cart[ "product_id" == $p->id]->quantity }}<td>
@endforeach

Я пытаюсь сопоставить $p->id, данные, которые я печатаю, с количеством в $cart, поскольку $cart имеет его под атрибутом product_id в таблице.

Прошу прощения, если я не могу правильно объяснить вопрос.

Спасибо.

1
Adarsh Kumar 15 Апр 2020 в 22:32

1 ответ

Лучший ответ

Это решение предполагает, что вы используете Eloquent Models, если вы не должны. В вашей модели Product.php определите взаимосвязь.

class Product extends Model {
    public function cart()
    {
        // Laravel automatically know to look in carts table for an product_id column
        return $this->belongsTo(Cart::class);
    }
}

Теперь у вас есть метод связи для вашей корзины, это полезно, если вы хотите его сохранить. Чтобы просто загрузить его из базы данных, если вы получите доступ к $product->cart, он автоматически получит модель Cart.php. Так что писать можно довольно просто.

@foreach( $prod as $p )
    <td>Quantity = {{ $p->cart->quantity }}<td>
@endforeach
1
mrhn 15 Апр 2020 в 19:42