首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel:让数组元素显示在桌子上

Laravel:让数组元素显示在桌子上
EN

Stack Overflow用户
提问于 2022-03-16 08:46:52
回答 3查看 310关注 0票数 2

如何获取数组的元素数据?下面是对象旅游的数组数据。

有些旅游可能没有tour_attendees (空数组)。

在一次巡回演出中,只有两项记录(与会者)。

代码语言:javascript
复制
#items: array:3 [▼
      0 => {#2115 ▶}
      1 => {#3067 ▶}
      2 => {#2125 ▼
        +"id": 12
        +"schedule_date": "28-11-2021"
        +"created_at": "2021-11-18T00:16:42.000000Z"
        +"updated_at": "2022-01-19T08:29:05.000000Z"
        +"deleted_at": null
        +"tour_attendees": array:2 [▼           // array data that I want to extract 
          0 => {#3077 ▶}                       // attendee #1
          1 => {#3054 ▶}                       // attendee #2
        ]
      }

我想提取数据并按下面的方式放进表格中。

代码语言:javascript
复制
| No  |    Attendee #1 |     Mobile      |    Attendee #2   |     Mobile      |
|     |                |  (Attendee #1)  |                  |  (Attendee #2)  |
|-----|----------------|-----------------|------------------|-----------------|
|  1  |                |                 |                  |                 |
|  2  |                |                 |                  |                 |

刀片文件

代码语言:javascript
复制
@foreach ($tour->tour_attendees as $key => $value)
 <td>
    @if (!empty($tour->tour_attendees))
       @foreach ($tour->tour_attendees as $key => $attendee)
          @if ($key == 0)
             {{ $attendee->name }}
          @endif
       @endforeach
    @endif
  </td>
  <td> attendee #1 mobile</td>
@endforeach
EN

回答 3

Stack Overflow用户

发布于 2022-03-16 12:44:09

您可以在forelsebreak上使用key === 2

代码语言:javascript
复制
@forelse ($tour->tour_attendees as $key => $attendee)
  @if ($key === 2)
    @break
  @endif
  <td>
     {{ $attendee->name }}
  </td>
  <td> 
     {{ $attendee->mobile }}
  </td>
@empty
  <td> - </td><td> - </td><td> - </td><td> - </td>
@endforelse

@if (count($tour->tour_attendees) === 1)
  <td> - </td><td> - </td>
@endif
票数 1
EN

Stack Overflow用户

发布于 2022-03-17 11:11:16

根据我的理解,您想为参加旅游的人设置数据,每次只需要两位与会者,这样您就可以按照您的表来映射您的数据了。

代码语言:javascript
复制
$tours = collect([
    [
        "id" => 12,
        "schedule_date" => "28-11-2021",
        "created_at" => "2021-11-18T00:16:42.000000Z",
        "updated_at" => "2022-01-19T08:29:05.000000Z",
        "deleted_at" => null,
        "tour_attendees" => collect([
            [
                'id' => 1,
                "name" => "john doe",
                "phone" => "123456789"
            ], [
                'id' => 1,
                "name" => "john doe",
                "phone" => "123456789"
            ]
        ])
    ], [
        "id" => 12,
        "schedule_date" => "28-11-2021",
        "created_at" => "2021-11-18T00:16:42.000000Z",
        "updated_at" => "2022-01-19T08:29:05.000000Z",
        "deleted_at" => null,
        "tour_attendees" => collect([])
    ]
]);

$resposne = $tours->map(function ($tour) {

        return [
            "id" => $tour["id"],
            "schedule_date" => $tour["schedule_date"],
            'tour_attendess' => [
                'attendee_one_name' => $tour['tour_attendees'][0]['name'] ?? '',
                'attendee_one_phone' => $tour['tour_attendees'][0]['phone'] ?? '',
                'attendee_two_name' => $tour['tour_attendees'][1]['name'] ?? '',
                'attendee_two_phone' => $tour['tour_attendees'][1]['phone'] ?? '',
            ]
        ];
});

return $resposne;

它会返回像这样的东西

代码语言:javascript
复制
     [
{
"id": 12,
"schedule_date": "28-11-2021",
"tour_attendess": {
"attendee_one_name": "john doe",
"attendee_one_phone": "123456789",
"attendee_two_name": "john doe",
"attendee_two_phone": "123456789"
}
},
{
"id": 13,
"schedule_date": "28-12-2021",
"tour_attendess": {
"attendee_one_name": "",
"attendee_one_phone": "",
"attendee_two_name": "",
"attendee_two_phone": ""
}
}
]

希望它能帮助你得到你想要的结果!

票数 1
EN

Stack Overflow用户

发布于 2022-03-16 12:54:05

您还可以使用array_splice()函数:

$tour_attendees = array_splice($yourArray,0,2);

https://www.php.net/manual/de/function.array-splice.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71494025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档