我有简单的订单系统。当订单提交时,客户应在其订单页面上有下载按钮。到现在为止还挺好。显示订单详细信息,但我看到它在数组中的一个附加值。
这就是数组的样子
object(stdClass)#454 (3) {
["223"]=>
object(stdClass)#453 (3) {
["title"]=>
string(7) "test"
["price"]=>
int(12)
["file_id"]=>
int(2)
}
["224"]=>
object(stdClass)#451 (3) {
["title"]=>
string(13) "test2"
["price"]=>
int(1)
["file_id"]=>
int(3)
}
["shipping"]=>
object(stdClass)#456 (2) {
["title"]=>
string(17) "Shipping Option 1"
["price"]=>
int(10)
}
}
对象223
和224
是两种产品的ID。在页面上,我可以看到两个产品的title
和price
,但file_id
对于它们是NULL。这就是我显示它们的方式
@foreach($download->getOrderData($download->order_details) as $itemId => $item)
<p>{{ $item->title }}</p>
<p>{{ $item->price }}</p>
<p>{{ $item->file_id }}</p>
@endforeach
这是订单型号
public function getOrderData($data)
{
$dataArray = json_decode($data, true);
$arrayKeys = array_keys($dataArray);
$arrayKeys = array_filter($arrayKeys, function ($value) {
return ($value !== 'shipping');
});
$productIds = implode(',', $arrayKeys);
$products = DB::table('products')
->leftjoin('category', 'products.category_id', '=', 'category.category_id')
->leftjoin('sub_category', 'products.sub_cat_id', '=', 'sub_category.sub_cat_id')
->where('product_id', $productIds)
->get();
foreach ($products as $item) {
if (!in_array($item->product_id, $arrayKeys)) continue;
$dataArray[$item->product_id]['category'] = $item->category_name;
$dataArray[$item->product_id]['sub_category'] = $item->sub_cat_name;
}
return json_decode(json_encode($dataArray));
}
答案 0 :(得分:0)
我怀疑下划线会导致问题。 https://twig.symfony.com/doc/2.x/templates.html#variables
因此也许
{{ $item['file_id'] }}
可能会做到这一点。