Laravel 5.4 如何通过表单请求为用户分配角色?
Laravel 5.4 how to assign roles to user by form request?
我有一个用户列表,在这里我放了一个选项来为每个用户分配角色,因为当点击 'Add Role' link 它会显示这条路线
Route::get('admin/home/role/{user}', 'RoleController@create');
在创建函数中我的表单代码是...
<form method="post" action="{{ url('admin/home/role') }}">
{{ csrf_field() }}
<div class="form-group">
<select name="role" class="form-control" >
<option value="1"> Admin </option>
<option value="2"> Editor</option>
</select>
</div>
<button type="submit" class="btn btn-primary">
Add Role
</button>
</form>
要管理此表单,我的 POST 路线是...
Route::post('admin/home/role', 'RoleController@store');
现在如何将此表单请求数据插入 role_user table?哦!我已经有 3 个 table、用户、角色和 role_user。
用户模型关系代码是...
public function role()
{
return $this->belongsToMany(Role::class, 'role_user');
}
角色模型关系代码是...
public function user()
{
return $this->belongsToMany(User::class, 'role_user');
}
我的问题是如何将表单请求数据插入 role_user table?
我知道一种方法是...
public function store(Request $request, User $user)
{
$role = Role::find(1);
$user = User::find(19);
$role->user()->attach($user);
}
它有效,但这不是动态的。如何通过表单请求插入?请帮我。我搜索了这个主题教程,但没有找到。
您需要发送 Role id
和 user id
值来存储函数
public function store(Request $request)
{
$user_id=$request->input('user_id'); // get user id from post request
$role_id=$request->input('role_id'); // get Role id from post request
/* Todo request validation*/
$user = User::find($user_id);
$role = Role::find($role_id);
$user->roles()->attach($role);
}
查看:
<form method="post" action="{{ action('RoleController@store') }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{ $user->id }}" /> // you need to pass $user to this view
<div class="form-group">
<select name="role_id" class="form-control" >
<option value="1"> Admin </option>
<option value="2"> Editor</option>
</select>
</div>
<button type="submit" class="btn btn-primary">
Add Role
</button>
</form>
我有一个用户列表,在这里我放了一个选项来为每个用户分配角色,因为当点击 'Add Role' link 它会显示这条路线
Route::get('admin/home/role/{user}', 'RoleController@create');
在创建函数中我的表单代码是...
<form method="post" action="{{ url('admin/home/role') }}">
{{ csrf_field() }}
<div class="form-group">
<select name="role" class="form-control" >
<option value="1"> Admin </option>
<option value="2"> Editor</option>
</select>
</div>
<button type="submit" class="btn btn-primary">
Add Role
</button>
</form>
要管理此表单,我的 POST 路线是...
Route::post('admin/home/role', 'RoleController@store');
现在如何将此表单请求数据插入 role_user table?哦!我已经有 3 个 table、用户、角色和 role_user。
用户模型关系代码是...
public function role()
{
return $this->belongsToMany(Role::class, 'role_user');
}
角色模型关系代码是...
public function user()
{
return $this->belongsToMany(User::class, 'role_user');
}
我的问题是如何将表单请求数据插入 role_user table? 我知道一种方法是...
public function store(Request $request, User $user)
{
$role = Role::find(1);
$user = User::find(19);
$role->user()->attach($user);
}
它有效,但这不是动态的。如何通过表单请求插入?请帮我。我搜索了这个主题教程,但没有找到。
您需要发送 Role id
和 user id
值来存储函数
public function store(Request $request)
{
$user_id=$request->input('user_id'); // get user id from post request
$role_id=$request->input('role_id'); // get Role id from post request
/* Todo request validation*/
$user = User::find($user_id);
$role = Role::find($role_id);
$user->roles()->attach($role);
}
查看:
<form method="post" action="{{ action('RoleController@store') }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{ $user->id }}" /> // you need to pass $user to this view
<div class="form-group">
<select name="role_id" class="form-control" >
<option value="1"> Admin </option>
<option value="2"> Editor</option>
</select>
</div>
<button type="submit" class="btn btn-primary">
Add Role
</button>
</form>