Skip to content

Validation error with "Exists" rule #16078

Closed
@milewski

Description

@milewski
  • Working Version: Illuminate/Validation: 5.3.4
  • Broke Version: Illuminate/Validation: 5.3.16 (probably any above 5.3.4 i didn't test all)
  • PHP Version: PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS )
  • Database Driver & Version: mysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64)

Description:

Something happened with this validation... it was working suddenly on the latest version everything broke

i get this error message

Fatal error:  Uncaught Error: Call to undefined method Symfony\Component\Translation\Translator::get() in /var/www/housekeeper/vendor/illuminate/validation/Validator.php:2246
Stack trace:
#0 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(2188): Illuminate\Validation\Validator->getAttribute('room_id')
#1 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(732): Illuminate\Validation\Validator->doReplacements(':attribute \xE4\xB8\x8D\xE5...', 'room_id', 'Exists', Array)
#2 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(715): Illuminate\Validation\Validator->addError('room_id', 'Exists', Array)
#3 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(546): Illuminate\Validation\Validator->addFailure('room_id', 'Exists', Array)
#4 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(461): Illuminate\Validation\Validator->validateAttribute('room_id', 'Exists')
#5 /var/www/housekeeper/vendor/illuminate/validation/Validator.php(486): Illuminate\Validation\Validato in /var/www/housekeeper/vendor/illuminate/validation/Validator.php on line 2246

Steps To Reproduce:

validate something using these rules

$rules = [
  'user_id' => 'required|users,id,deleted_at,NULL'
]

The problem here is with the "deleted_at,NULL" which previously was working...

as laravel will validate even if the user has been trashed... so its important to add deleted_at check on the validation...

The error will occur if you do have a trashed entry on the database

Additional info...

im using the validation out of laravel using this package

"Illuminate/Validation": "^5.3",

and i am using it like

$translator = new \Symfony\Component\Translation\Translator('cn');
$translator->addLoader('json', new \Symfony\Component\Translation\Loader\JsonFileLoader());
$translator->addResource('json', __DIR__.'/validation.json', 'cn');

$validator = new \Illuminate\Validation\Factory(
  $translator, new \Illuminate\Container\Container()
);

$validator->setPresenceVerifier(
  new DatabasePresenceVerifier(.......)
);

$validator->make(.....);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions