【发布时间】:2015-03-05 16:09:57
【问题描述】:
我有一个视图,它显示了一个包含与用户模型相关的预填充数据的表单。这是为了更新模型数据。但是,当提交表单时,会出现冲突,因为电子邮件地址不是唯一的(如果尚未更改)。但是我仍然希望能够存储它(或忽略它)。
我正在尝试使用此控制器代码更新模型:
$input = Input::all();
$validator = Validator::make($input, User::$rules['edit']);
if ($validator->fails()) {
return Response::json(array(
'error' => $validator->messages()
));
}
在模型中,我有:
public static $rules = array(
'create' => array(
'email' => 'required|email|unique:users',
'password' => 'required|confirmed',
'firstname' => 'required',
'lastname' => 'required',
'address_one'=> 'required',
'postcode'=> 'required'
),
'edit' => array(
'email' => 'sometimes|required|email|unique:users',
'password' => 'sometimes|required|confirmed'
),
);
但是当我更新时,我收到错误消息:
"error": {
"email": [
"The email has already been taken."
]
}
我认为sometimes 会阻止这种行为。我做错了什么?
【问题讨论】:
-
你想做什么?
-
我正在尝试更新模型,但如果电子邮件没有更改,那么它会看到它抛出此错误,因为它不是唯一的。