簡體   English   中英

如何使用Laravel Eloquent動態填充復選框

[英]How To Populate Checkbox dynamically using Laravel Eloquent

我有用戶角色兩個表數據,我已經雄辯地獲取了數據並將其發送到我的視圖。 現在,我想動態填充用戶角色復選框。 這時候我已經寫成硬代碼

這是我的代碼。

@foreach($users as $user)
    <tr>
        <td>{{$user->name}}</td>
        <td>{{$user->email}}</td>

         @foreach($user->roles as $role)

        <td><input type="checkbox" name="" {{$user->hasRole('User') ? 'checked' : ''}}></td>
        <td><input type="checkbox" name="" {{$user->hasRole('Admin') ? 'checked' : ''}}></td>
        <td><input type="checkbox" name="" {{$user->hasRole('Author') ? 'checked' : ''}}></td>
         @endforeach
        <td></td>
    </tr>
    @endforeach

我的雄辯查詢。

    $users=User::with('roles')->get();

    return view('admin',compact('users'));

用戶模型關系。

 public function roles()
{
    return $this->belongsToMany('App\Role');
}

在控制器中,您還需要加載所有角色:

$users = User::with('roles')->get();
$roles = Role::get();
return view('admin', compact('users', 'roles'));

在視圖中,執行以下操作:

@foreach($users as $user)
    <tr>
        <td>{{ $user->name }}</td>
        <td>{{ $user->email }}</td>

        @foreach($roles as $role)
            <td><input type="checkbox" name="role[]" {{ $user->roles->contains($role) ? 'checked' : '' }}></td>
        @endforeach
        <td></td>
    </tr>
@endforeach

因此,您需要遍歷所有角色,而不僅僅是遍歷用戶擁有的角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM