Laravel - 验证 - 要求if字段为空

时间:2016-08-11 10:36:32

标签: php validation laravel require

我们说我有这个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),那么就不需要emailpassword输入。如果没有user_id,则需要emailpassword字段。

换句话说,我想做这样的事情:

public function rules()
{
    return [
        'user_id'   => 'exists:users,id',
        'email'     => 'required_if_null:user_id|email|...',
        'password'  => 'required_if_null:user_id|...'
    ];
}

1 个答案:

答案 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',
}