Я пытаюсь найти лучший способ получить свойства из сериализованного массива в моем шаблоне клинка.Laravel: Как я могу использовать json_decode на мой взгляд?
MyController.php
$cart = Cart::findOrFail($id);
...
return view('view', ['cart' => $cart]);
Так что в этом случае $cart
имеет много элементов (объектов) внутри него, что становится передаются в представлении.
cart.blade.php
...
@each('show', $cart->items()->get(), 'item')
...
С этой точки зрения я могу получить доступ вещи таким образом:
show.blade.php
<p>$item->name</p>
<p>$item->color</p>
...
Но $item
также имеет сериализованный атрибут, который содержит такие вещи, как sku, вес, количество и т. д.
// $item->serialized_item = {"id":123,"quantity":5,"...} (string)
Так что в моем show.blade.php
зрения мне нужно сделать что-то вроде:
json_decode($item->serialized_item)
Прямо сейчас я просто импортировать другой вид, чтобы помочь сохранить вещи в чистоте, но я не думаю, что это лучший путь.
cart.blade.php
...
@include('detail', ['attributes' => item->serialized_item])
detail.blade.php
<?php
$foo = json_decode($item->serialized_item, true);
?>
<p>{{$foo['quantity']}}</p> // 5
Этот метод работает, но это, кажется, как взломать.
хорошо, $ foo на самом деле является более крупным объектом со множеством меньших объектов. Его внутри этих объектов лежит сериализованный атрибут. Итак, что-то вроде 'foreach (foo as item)', тогда внутри 'item' является сериализованным атрибутом. Я надеюсь, что в этом есть смысл. Я работаю с корзиной покупок, поэтому думаю о '$ foo' как о моей корзине. – Damon
Можете ли вы редактировать и лучше понимать логику кода для каждого файла? Просто недостающие строки с некоторыми поддельными данными. –
Несомненно! Спасибо вам за помощь. – Damon