Я пытаюсь сделать тележку для покупок в 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 ответ
Это решение предполагает, что вы используете 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
Похожие вопросы
Новые вопросы
laravel
Laravel - это бесплатная веб-инфраструктура PHP с открытым исходным кодом, созданная Тейлором Отвеллом и предназначенная для разработки веб-приложений по архитектурному шаблону модель-представление-контроллер (MVC) на основе Symfony. Исходный код Laravel размещен на GitHub и лицензирован в соответствии с условиями лицензии MIT.