2017-08-31 19 views
2

Form Collectiveパッケージで動作する以下のコードがありますが、パッケージが5.5用に更新されていないため、今は動作しません。私はまた私が持っているコードは、私はちょうどpermissionsを通って、permissionは現在roleチェックボックスに属している場合はループしていると信じてLaravel 5.5 - ロールに権限がある場合はチェックボックスをチェックしてください

@foreach ($permissions as $permission) 

    {{Form::checkbox('permissions[]', $permission->id, $role->permissions) }} 
    {{Form::label($permission->name, ucfirst($permission->name)) }}<br> 

@endforeach 

ある

SpatieのLaravel許可パッケージを使用しています。

パッケージを使用せずにこれを行うにはどうすればよいですか?

私は現在

@foreach ($permissions as $permission) 

    <div class="checkbox"> 
     <label> 
      {{ ucfirst($permission->name) }} 
     </label> 
     <input type="checkbox" name="permissions[]" value="{{ $permission->id }}"> 
     <br> 
    </div> 

@endforeach 

を試してみましたが、しかし、私は役割は、リスト内の権限を持っているかどうかに基づいて、checked属性を添付するかどうかはわかりません。

+0

これは実際にはLaravel自体に依存していないが、それはむしろ、HTMLの質問です。とにかく私は以下の答えを投稿しました – Desh901

+0

それはLaravelに依存しません –

答えて

5

ただ、チェックボックスのHTMLにchecked属性を追加します。あなたは条件にそれを設定する必要がある場合は、次のコードを使用し

<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" checked> 

:ので

<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" @if(/* some condition */) checked @endif> 

EDIT

を私はいくつかの詳細を追加する前に、私は質問を理解していない。あなたのRoleモデルは付属の権限のコレクションを持っており、あなたが

<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" @if($role->permissions->contains($permission)) checked @endif> 

自分の役割は、ID $permission->idと権限を持っているかどうかをチェックすることができ、そのように行うことができます$role->permissionsそれが属性に格納されると仮定すると

+0

これは役に立ちませんが、私はチェック属性を追加することができますが、そのチェックボックスをチェックする権限があるかどうかを調べる方法を理解する必要があります –

+0

ああ、それは本当に質問自体からはっきりしていない、私は私の答えを編集します – Desh901

+0

それは今あなたの問題に対処する必要があります – Desh901

2

これを試してみてください:

@foreach ($permissions as $permission) 

    <div class="checkbox"> 
     <label> 
      {{ ucfirst($permission->name) }} 
     </label> 
     <input type="checkbox" name="permissions[]" value="{{ $permission->id }} {{($role->permissions == $permission->id) ? 'checked' : ''}}"> 
     <br> 
    </div> 

@endforeach 
+0

私のチェックボックスはすべて空ですが、私は3人のロールがあり、その間にさまざまなパーミッションを持っているので、少なくともチェックされたカップルを見てみる必要があります –

+0

DBにアクセス許可を保存していますか? –

+0

'$ role-> permissions'はコレクションであり、' $ permission-> id'は整数です。だから、基本的にはコレクション全体をIDと比較しています。それは常に 'false'を返します。 – Desh901

関連する問題