Валидация Laravel: условие required_with_all всегда проходит

Согласнодокументация по валидации:

required_with_all: Foo, бар, ... Проверяемое поле должно присутствовать, только если присутствуют все остальные указанные поля.

Вот мой тест:

    Route::get('/test/{param}', function($param) {
        $screenRules = array(
            'foo' => 'string',
            'param' => 'required_with_all:foo',

        );

        $validator = Validator::make(array('param' => $param), $screenRules);
        if($validator->fails())
        {
            echo '<pre>';
            print_r($validator->errors());
            echo '</pre>';
            die('Dying now!');
        }
        else
        {
            echo 'All Good!';
            die('Dying now!');
        }
    });

Я ожидаю, что, так как я не прохожуfooэтот тест должен провалиться. Но этот тест проходит, когда я называю свой URL:mysite.com/test/mytest

Точно так же, если вы поменялись ролями, вот так

'param' => 'required_without_all:foo',

и передать Foo в качестве ввода

array('param' => $param, 'foo' => 'bar')

Я ожидаю, что сfoo присутствует, вы не можете иметьparam в качестве ввода. Но тест все равно проходит.

В обоих случаях я должен видеть ошибки. и так, что здесь происходит?

Я также знаю, что мои функции проверки правильны, потому что моя другая проверка работает. Например. добавить условие так:

'param' => 'required_with_all:foo|numeric',

и это действительно выдает ошибкуThe param must be a number.

Ответы на вопрос(1)

Ваш ответ на вопрос