为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.0 显示数组中的项,其中键的值与值匹配

Laravel 5.0 显示数组中的项,其中键的值与值匹配

PHP
HUH函数 2021-06-21 17:09:28
我有一个看起来像这样的数组: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": ""  }]现在我将此数组发送到我的视图,我的目标是在我的 h1 标签中显示 item_type“title”的内容。我可以这样做:@foreach($blockItemsContent as $blockItemContent)    @if($blockItemContent->item_type == 'title')        <h1>{{ $blockItemContent->content }}</h1>    @endif@endforeach但是如果我想将 item_type 文本放在 ap 标签中,我也需要这样做。没有比必须为每个循环编写多个更有效的方法吗?
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以在控制器中对每种类型进行分组,例如:

collect($blockItemsContent)->groupBy('item_type');

并将其传递给视图,您就有了自己的类型。


查看完整回答
反对 回复 2021-06-25
?
慕后森

TA贡献1802条经验 获得超5个赞

您可以在控制器的方法中准备类似此数组的内容并将其发送到视图:


$titleItemTypeContent = [];

foreach ($blockItemsContent as $blockItemContent)

{

    if ($blockItemContent->item_type == 'title')

        $titleItemTypeContent[] = [$blockItemContent->id, $blockItemContent->content];

}

并$titleItemTypeContent根据需要在刀片中重复使用多次。


查看完整回答
反对 回复 2021-06-25
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

根据您的问题 If item_type = title 则显示在 h1 标签中 If 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


查看完整回答
反对 回复 2021-06-25
  • 3 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信