【发布时间】:2019-05-01 02:36:19
【问题描述】:
我已经浏览了我在 youtube、stakoverflow 和其他网站上可以找到的所有解决方案。我正在使用 Select2 添加多个角色,但我始终遇到相同的错误。
<select id="role" name="role_id[]" multiple='multiple'
class="form-control js-example-basic-multiple">
@foreach($roles as $role)
<option value="{{$role->id}}">{{$role->name}}</option>
@endforeach
</select>
DD 函数显示完美结果,但之后显示错误。
在我添加带有 name="role_id[]" 的 [] 之前,它可以完美运行。 形式行动如下。
public function store(Request $request)
{
$this->validate($request, [
'name'=> 'required|string|max:225',
'status'=> 'required',
'role_id'=> 'required',
'email'=> 'required|string|email|max:225|unique:users',
'password'=> 'required|string|min:6|confirmed'
]);
$password = Hash::make($request->password);
// dd($request->all());
$user = new User;
$user->name = $request->name;
$user->status = $request->status;
$user->role_id = $request->role_id;
$user->email = $request->email;
$user->password = $password;
$user->remember_token;
$user->save();
// $user->roles()->sync($request->roles, false);
return back()->with('message', 'User added successfully!!');
}
迁移如下
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->unsignedInteger('role_id')->default(1);
$table->boolean('status')->default(0);
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
【问题讨论】:
-
将其更改为
'role_id.*'=> 'required',并且 role_id 是数组的集合,您应该使用循环运行该数组,然后插入到users role表中,因为用户拥有多个角色,您需要将它们保存在另一个表中,例如用户角色 -
error is here
$user->role_id = $request->role_id;在这一行中,您将数组 ($request->role_id) 分配给单个变量。因此,您应该首先创建数组,然后在$request->role_id上使用 foreach 循环为数组赋值 -
我在验证中还有另一个错误。如果我使用 'role_id'=> 'required|integer' 而不是 'role_id'=> 'required',我会收到错误“角色 id 不是整数”。
-
@AliAnwar 是什么错误??您应该在问题中包含实际的错误消息
-
当我验证整数时,错误是“角色 ID 不是整数”。
标签: php sql laravel jquery-select2