Laravel 5.1でZizaco/entrustを使用しています。私は明示的に特定の役割にチェックボックスを使って権限を与えたいと思う。これは私のコードです:役割をフェッチVue JSとLaravel 5.1 + Entrustで特定のロールの権限を確認してください
:
fetchRoles: function(){
this.$http.get('api/role',function(data){
this.$set('roles',data);
});
}
フェッチ権限:
fetchPermissions: function(){
this.$http.get('api/permission',function(data){
this.$set('permissions',data);
});
}
は、役割と権限を割り当てるためのテーブルである:
<table class="table table-bordered table-responsive">
<thead>
<th>Permissions/Roles</th>
<th v-for="role in roles">
@{{ role.display_name }}
</th>
</thead>
<tbody>
<tr v-for="permission in permissions">
<td>@{{ permission.display_name }}</td>
<td v-for="role in roles">
<input type="checkbox" value="@{{ permission.id }}" name="roles[@{{ role.id }}][permissions][]">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>
<button type="submit" class="btn btn-primary">Alter Permission</button>
</td>
</tr>
</tfoot>
</table>
出力は以下のようです: Screenshot of Output
の許可は、以下の方法によっても成功裏に割り当てられます。役割は、特定の権限を持っている場合、私がチェックボックスを作っているでstucked午前
public function changePermission(Request $request){
$input = $request->all();
$roles = Role::all();
foreach($roles as $role)
{
$permissions_sync = isset($input['roles'][$role->id])? $input['roles'][$role->id]['permissions'] : [];
$role->perms()->sync($permissions_sync);
}
Flash::success('Successfully modified permissions!');
return redirect()->back();
}
だけの事をチェック。
それはPHPオブジェクトにあった場合、私は次のことを行うことができます:
@if(count($permissions)>0)
@foreach($permissions as $permission)
<tr>
<td>{{$permission->display_name}}</td>
@if(count($roles)>0)
@foreach($roles as $role)
<td><input type="checkbox" value="{{$permission->id}}" name="roles[{{$role->id}}][permissions][]" @if($role->hasPermission($permission->name)) checked="checked" @endif></td>@endforeach @endif </tr> @endforeach @endif
は、どのように私はVueのJSでhasPermission()メソッドを使用できますか?
コンポーネントを使用していますか、これは単一のvueインスタンスですか? –
ちょっとジャスティン、これは単一のvueインスタンス内にあります。 – sazanrjb