簡體   English   中英

Laravel表單集體復選框

[英]Laravel form collective checkbox

因此,如何使用數據庫中的值制作默認的選中/未選中復選框? 我正在使用Laravel Collective的Form模型,而我的復選框字段是這樣的:

Form::model($role, ['route' => ['the_route', $role->slug], 'method' => 'patch'])

    @foreach ($permissions as $permission)
        Form::checkbox('permission['.$permission->slug.']', 'true', null, ['class' => 'square'])
    @endforeach

Form::close()

問題是$role->permissions返回如下數組:

array:3 [
  "dashboard.view" => "false"
  "user.view" => "true"
  "user.edit" => "false"
]

第三個參數是布爾值$checked ,因此您可以這樣編寫:

Form::model($role, ['route' => ['the_route', $role->slug], 'method' => 'patch'])

    @foreach ($permissions as $slug => $value)
        Form::checkbox('permission['.$slug.']', 'true', (bool) $value, ['class' => 'square'])
    @endforeach

Form::close()

Lavel Collective有一個沒有記錄的有趣資源,至少我從未在任何站點中找到它。 使用與您在兩個模型之間的關系所給的名稱相同的名稱來命名您的復選框,例如“權限”,然后Laravel Collective將檢查該關系中的所有輸入。 在您的特定情況下,$ role-> permission應該返回一個模型,而不是數組,就像通常在任何Laravel應用程序中一樣。

檢查示例代碼:

{!! Form::model($role, ['route' => ['roles.update',  $user->id], 'method' => 'put']) !!}

    <div class="row form-group">

        @foreach($permissions as $permission)
            <div class="col-sm-3">
                {!! Form::checkbox('permissions[]', $permission->id) !!}
                {!! Form::label('permissions', $permission->name) !!}
            </div>
        @endforeach

    </div>

{!! Form::close() !!}

// 榜樣

class Role extends Model 
{

    public function permissions()
    {
        return $this->belongsToMany(Permission::class, 'permission_role');
    }
}

//權限模型

class Permission extends Model
{

    public function roles()
    {
        return $this->belongsToMany(Role::class, 'permission_role');
    }
}

暫無
暫無

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

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