我们如何选择多个下拉 HTML 来更新 Laravel 中的数据?

问题描述 投票:0回答:1

我在更新 Laravel 帐户表及其组时遇到问题。我希望 Laravel 选择该帐户在数据透视表中的下拉列表 ID,但由于错误的嵌套循环,它显示重复的下拉列表。我该怎么办?

在账户控制器中

    public function edit(string $id)
        {
            $account = Account::find($id);
            $groups = Group::pluck('name','id')->toArray();
            $pages = Page::pluck('name','id')->toArray();
            return view('accounts.edit',compact('account','groups','pages'));
        }

在edit.blade.php中

    @foreach( $groups as $gr_id => $gr_name ) /** Get all data from db to show in html dropdown **/

        @foreach ($account->group as $group_data)  /** get the selected dropdown from pivot table **/ 

            @if ( $gr_id == $group_data->id ) /** compare their id the selected dropdown **/
                <option value="{{ $gr_id }}" selected> {{ $gr_name }}</option>
            @else 
                <option value="{{ $gr_id }}"> {{ $gr_name }}</option>
            @endif  

        @endforeach 

    @endforeach
                

此问题与错误编码技术的嵌套循环有关。你能纠正我吗?

laravel pivot-table html-select nested-loops
1个回答
0
投票

尝试循环遍历所有组一次,然后检查当前组是否在帐户的组中。您可以使用 Laravel 集合提供的

contains
方法来实现此目的。

@foreach( $groups as $gr_id => $gr_name )
    @if ($account->group->contains('id', $gr_id))
        <option value="{{ $gr_id }}" selected> {{ $gr_name }}</option>
    @else 
        <option value="{{ $gr_id }}"> {{ $gr_name }}</option>
    @endif
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.