はここ権限、役割のための私のテーブル構造で、かつLaravel 5.1 ACLの役割と権限は、
許可permission_role:
ID 名
役割:
ID 名
permission_role:
role_id、 permission_id
ここで、permission_roleはピボットテーブルです。私はこのような設定に何かを持っている私のフロントエンドで
、
私controller.phpで
<form method="POST" action="/give/permission">
{!! csrf_field() !!}
<select name="role" class="selectpicker" multiple data-max-options="2">
@foreach($roles as $r)
<option value="{{$r->id}}">{{$r->name}}</option>
@endforeach
</select>
<div class="checkbox">
@foreach ($perm as $p)
{!! Form::checkbox('p[]', $p->id, in_array($p->id, $all_data)) !!}
{!! Form::label('permisssion', $p->name) !!}<br>
@endforeach
</div>
<button type="submit" class="default">Submit</button>
</form>
public function postrolperm(Request $request,$id){
$p = Role::find($id);
$role = $request->role;
//dd($input1);
$permission = $request->p;
//dd($input2);
//
//$role = Role::where("name", "admin")->get();
if(isset($permission) && isset($role)){
$role->givePermissionTo($permission);
$role->save();
}
return redirect::back();
}
role.php welcome.blade.php
public function givePermissionTo(Permission $permission)
{
return $this->permissions()->save($permission);
}
私は午前中ですピボットテーブルにデータを保存できません。
私は、次のコマンドを使用してphp artisan tinker
で試してみました:私は私のコントローラで間違ってやっている
$role = Role::first(); //which gives me the first role with id of 1
$role->givePermissionTo(Permission::first()); // it will save the first permission to the role.
何?
また、このルートは正常に動作することに注意してください。
Route::get("/pivot", function(){
$permission = new Permission;
$permission->name = "can to";
$permission->save();
$role = new Role;
$role->name = "admin2";
$role->save();
$role->givePermissionTo($permission);
return "true";
});
ダイ・ダンプを実行します。役割と権限がリクエストから設定されていることを確認するために、コントローラ関数内の 'if'の中に' dd(私は設定されています) 'があります。 –
はい..ダイのダンプの後に許可と許可が設定されています。 –
'$ role-> givePermissionTo($ permission);'の後に '$ role-> save();'を呼び出します。それは動作しますか? –