我有一个看起来像这样的数组:
query($sql); $row = $d->fetch_array(); $hinhanh = $row['thumb']; $data=''; $data.='
'; $data.=''.$url.$hinhanh'; $data.='
'.$row['ten_'.$lang].'
'; $data.='
'; $data.='
'; return $data; } function get_price($pid){ global $d, $row,$price; $sql = "select giaban,khuyenmai from table_product where id=$pid"; $d->query($sql); $row = $d->fetch_array(); if($row['giaban'] !=0 && $row['khuyenmai'] == 0){ $price = $row['giaban']; }elseif($row['khuyenmai'] != 0){ $save_price = $row['khuyenmai']; $special_price = $row['giaban']-$save_price; $price = $special_price; } return $price; } function remove_product($pid){ $pid=intval($pid); $max=count($_SESSION['cart']); for($i=0;$i<$max;$i++){ if($pid==$_SESSION['cart'][$i]['productid']){ unset($_SESSION['cart'][$i]); break; } } $_SESSION['cart']=array_values($_SESSION['cart']); } function get_order_total(){ $max=count($_SESSION['cart']); $sum=0; for($i=0;$i<$max;$i++){ $pid=$_SESSION['cart'][$i]['productid']; $q=$_SESSION['cart'][$i]['qty']; $price=get_price($pid); $sum+=$price*$q; } return $sum; } function get_total(){ $max=count($_SESSION['cart']); $sum=0; for($i=0;$i<$max;$i++){ $pid=$_SESSION['cart'][$i]['productid']; $q=$_SESSION['cart'][$i]['qty']; $sum+=$q; } return $sum; } function addtocart($pid,$q){ if($pid<1 or $q<1) return; if(is_array($_SESSION['cart'])){ if(product_exists($pid)) return; $max=count($_SESSION['cart']); $_SESSION['cart'][$max]['productid']=$pid; $_SESSION['cart'][$max]['qty']=$q; } else{ $_SESSION['cart']=array(); $_SESSION['cart'][0]['productid']=$pid; $_SESSION['cart'][0]['qty']=$q; } } function product_exists($pid){ $pid=intval($pid); $max=count($_SESSION['cart']); $flag=0; for($i=0;$i<$max;$i++){ if($pid==$_SESSION['cart'][$i]['productid']){ $_SESSION['cart'][$i]['qty'] +=1; $flag=1; break; } } return $flag; } ?>
现在,我将此数组发送到视图中,我的目标是在h1标签中显示item_type“ title”的内容。
我可以这样:
array:3 [▼
0 => {#354 ▼
+"id": 38
+"block_newsletter_id": 102
+"item_type": "title"
+"html_key": ""
+"content": "TITLE"
+"properties": ""
}
1 => {#355 ▼
+"id": 39
+"block_newsletter_id": 102
+"item_type": "text"
+"html_key": ""
+"content": "Some text. Hey."
+"properties": ""
}
2 => {#356 ▼
+"id": 40
+"block_newsletter_id": 102
+"item_type": "button"
+"html_key": ""
+"content": "click here"
+"properties": ""
}
]
但是,如果我想将item_type文本放入p标记中,则需要执行相同的操作。没有比为每个循环编写多个循环更好的方法了吗?
答案 0 :(得分:0)
您可以在控制器的方法中准备类似此数组的内容并将其发送到视图:
$titleItemTypeContent = [];
foreach ($blockItemsContent as $blockItemContent)
{
if ($blockItemContent->item_type == 'title')
$titleItemTypeContent[] = [$blockItemContent->id, $blockItemContent->content];
}
并根据需要在刀片中重复使用$titleItemTypeContent
。
答案 1 :(得分:0)
您可以在控制器中对每种类型的组进行分组,例如:
collect($blockItemsContent)->groupBy('item_type');
并将其传递给视图,您就可以输入类型。
答案 2 :(得分:0)
根据您的问题 如果item_type = title,则显示在h1标签中 如果item_type = text,则显示在p标签中
其他显示在span标签中
在刀片文件中:
@foreach($blockItemsContent as $item)
@if($item->item_type == 'title')
<h1>{{ $item->content }}</h1>
@elseif($item->item_type == 'text')
<p>{{ $item->content }}</p>
@else
<span>{{$item->content}}</span>
@endif
@endforeach