Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel验证:仅当存在另一个字段时才验证该字段_Php_Validation_Laravel - Fatal编程技术网

Php Laravel验证:仅当存在另一个字段时才验证该字段

Php Laravel验证:仅当存在另一个字段时才验证该字段,php,validation,laravel,Php,Validation,Laravel,我只想在“需要登录”存在时验证“帐户id”。我这样做: $rules = [ 'account_id' => ['required_with:needs_login','custom_validation'] ]; 但它不起作用,因为如果不存在“需要”登录字段,但account\u id有一些值,那么它会尝试执行“自定义\u验证”。 我还尝试设置“有时”参数 $rules = [ 'account_id' => ['required_with:needs_login

我只想在“需要登录”存在时验证“帐户id”。我这样做:

$rules = [
    'account_id' => ['required_with:needs_login','custom_validation']
];
但它不起作用,因为如果不存在“需要”登录字段,但account\u id有一些值,那么它会尝试执行“自定义\u验证”。 我还尝试设置“有时”参数

$rules = [
    'account_id' => ['required_with:needs_login', 'sometimes', 'custom_validation']
];
但它不起作用

有什么想法吗

p.S.:记住,我只想在需要登录时验证帐户id,而不是在需要登录时检查帐户id是否存在


你试过了吗

$rules = [
    'account_id' => ['required_if:needs_login,1']
];

如果你走的是“有时”路线,这种方法对Laravel 5有效。也许你能适应L4?看起来是一样的


您使用的是哪一个Laravel版本,5.1?版本是4.2.17可能不能这样做,因为我需要一个验证,如果它是真的,那么也验证其他验证,如果它是假的,那么停止验证控件并让它通过。但如果你有任何想法,它会被赏识非法鸽子的答案是正确的。和以前一样。如果帐户\u id存在,即使需要\u登录不存在,它也会尝试对帐户\u id执行其他验证它尝试执行的其他验证是什么?只有当“需要登录”有值时,才需要“帐户id”。如果“needs\u login”没有值,则验证将失败。我看不出它是如何进行另一次验证的?这是正确的答案。但是,我认为不应该有
[
]数组标记。@0和1是的,关于数组标记你是正确的。当我使用数组标记(用于测试将发生的情况)时,我在调试器中收到一条“数组到字符串转换”错误消息。非法鸽子-我可以确认你的解决方案对我有效,减去数组标签。
$validation = Validator::make($formData, [
    'some_form_item' => 'rule_1|rule_2'
]
$validation->sometimes('account_id', 'required', function($input){
    return $input->needs_login == true;
});