我在更新角色信息时遇到问题。在我的数据库中,我的属性nombre_rol
为unique
. 注册新角色时,它可以完美运行,但是在更新同一记录时,它会抛出角色元素已在使用中的错误。
模特角色
class Rol extends Model
{
protected $table = 'rol';
protected $primaryKey = 'idrol';
public $timestamps =false;
protected $fillable =['nombre_rol, descripcion, estado, fecha'];
protected $guarded =[];
}
角色请求
public function rules()
{
return [
'nombre_rol'=>'required|unique:Rol,nombre_rol',
'descripcion'=>'required'
];
}
我正在使用 laravel 5.2,根据文档,它说要忽略我必须输入以下内容
'email' => 'nombre_rol'=>'required|unique:Rol,nombre_rol,'.$user->id.',user_id',
但在我的情况下,我得到一个未定义的变量错误,我什至不明白我从哪里得到 $user->id 变量。
您在验证语法中使用了错误的值:
在您的情况下,假设您没有使用模型绑定,它应该是这样的:
如果您的路线类似于
Route::put('actualizar-rol/{id}', 'Controlador@metodo');
所以验证将是
如果你使用路由模型绑定,它会是这样的:
路线:
Route::put('actualizar-rol/{rol}', 'Controlador@metodo');
和验证:
使用更新方法中的验证对我来说 100% 有效,因为在我的存储方法中我不发送 id。
我留下代码以防它帮助某人。问候。