我们说我有这个HTML代码:
<input type="email" name="email">
<input type="password" name="password">
或者这个:
<input type="hidden" name="user_id" value="1">
(如果用户已登录,则只会显示user_id
字段。其他 - 凭据字段。)
当我创建请求时,会有一个检查用户的验证。如果字段user_id
存在(即如果用户表中存在user_id
),那么就不需要email
和password
输入。如果没有user_id
,则需要email
和password
字段。
换句话说,我想做这样的事情:
public function rules()
{
return [
'user_id' => 'exists:users,id',
'email' => 'required_if_null:user_id|email|...',
'password' => 'required_if_null:user_id|...'
];
}
答案 0 :(得分:10)
再次阅读验证文档后,我找到了解决方案。我只需要使用required_without
验证:
public function rules()
{
return [
'user_id' => 'exists:users,id',
'email' => 'required_without:user_id|email|unique:users,email',
'password' => 'required_without:user_id',
}