【问题标题】:get the row id from a groupBy in laravel从 laravel 中的 groupBy 获取行 ID
【发布时间】:2020-02-26 18:25:56
【问题描述】:

我有一个 groupBy 数据正在工作,但我想知道如何获取嵌套记录的行 ID?

来自我的索引函数

public function index(Request $request)
{
    $collectorBorrowers = CollectorMember::get()
      ->groupBy('collector.name');
}

return view('dashboard.collector-members.index', compact('collectorBorrowers'));

这是我的收藏家成员的桌子

这是我在刀片上显示 groupBy 的方式

@foreach ($collectorBorrowers as $collector => $users_list)
    <tr>
        <th colspan="5"
            style="background-color: #F7F7F7">{{ $collector }}: ({{ $users_list->count() }} borrowers)</th>
    </tr>
    @foreach ($users_list as $user)
        <tr>
            <td><div class="profile-side-img rounded-circle" style="background:url({{ url('/storage/avatars/'.$user->borrower['avatar']) }});"><br/></div></td>
            <td><a href="/dashboard/users/{{ $user->borrower['id'] }}" target="_blank">{{ $user->borrower['name'] }}</a></td>
            <td>{{ $user->borrower['email'] }}</td>
            <td>+{{ $user->borrower['country_code'] }}{{ $user->borrower['phone_number'] }}</td>
            <td>
                @if ($user->borrower['email_verified_at'])
                    <button class="btn btn-success btn-sm trans" data-toggle="tooltip" title="Email Verified"><i class="fas fa-at"></i></button>
                @else 
                    <button class="btn btn-light btn-sm trans"><i class="fas fa-at"></i></button>
                @endif

                @if ($user->borrower['phone_verified_at'])
                    <button class="btn btn-success btn-sm trans" data-toggle="tooltip" title="Phone Number Verified"><i class="fas fa-mobile-alt"></i></button>
                @else
                    <button class="btn btn-light btn-sm trans"><i class="fas fa-mobile-alt"></i></button>
                @endif
            </td>
            <td></td>
            <td>
            {!! Form::open([
                'method'=>'DELETE',
                'url' => ['/dashboard/collector-members', $users_list],
                'style' => 'display:inline'
            ]) !!}
                {!! Form::button('<i class="fas fa-trash-alt" aria-hidden="true"></i>', array(
                        'type' => 'submit',
                        'class' => 'btn btn-custom-danger btn-sm trans',
                        'title' => 'Remove user',
                        'onclick'=>'return confirm("Confirm delete?")',
                        'data-toggle' => 'tooltip',
                        'data-original-title' => 'Edit'
                )) !!}
            {!! Form::close() !!}                                             
            </td>
        </tr>
        {{-- {{dd($users_list)}} --}}
    @endforeach
@endforeach

这给了我这个输出

一切正常,我唯一关心的是收集器成员表中的行 ID,以便我可以从特定收集器中删除记录。

有可能吗?谢谢!

更新:

public function index(Request $request)
{
    $collectorBorrowers = CollectorMember::get()
        ->keyBy('id')
        ->groupBy('collector.name');

    dd($collectorBorrowers);
}

【问题讨论】:

    标签: laravel


    【解决方案1】:

    分组前尝试按行ID进行key集合:

    https://laravel.com/docs/5.8/collections#method-keyby

    $collectorBorrowers = CollectorMember::get()
          ->keyBy('id')
          ->groupBy('collector.name');
    

    然后在你看来遍历这样的组:

    @foreach ($users_list as $key => $user)
          ...
          {!! Form::open([
                'method'=>'DELETE',
                'url' => ['/dashboard/collector-members', $key],
          ]) !!}
          ...
    @endforeach
    

    附:避免使用表单助手,因为它已被弃用。

    Why are Form and HTML helpers deprecated in Laravel 5.x?

    【讨论】:

    • 再次感谢@romanbobrik。但是在@foreach ($users_list as $key =&gt; $user) 上添加 $key 只需给我一个嵌套 foreach 数据的序列号,例如0,1,2,3,4,5。
    • 嗯。你能显示keyed $collectorBorrowers的转储吗?
    • 我想我明白了。我只需要输入 {{$user->id}}。非常感谢@roman
    猜你喜欢
    • 2016-01-20
    • 2022-11-16
    • 2018-05-26
    • 2021-01-07
    • 2016-06-17
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多