Документация по упаковке Zizaco/confide на Laravel не очень описательна, когда объясняется, как использовать специальные валидаторы. Я хотел бы иметь возможность проверять поля имени, фамилии, адреса, города, штата и т. Д. В моем процессе регистрации, однако я не нашел ничего, что работает, кроме изменения пакета поставщика. За документацией, я должен быть в состоянии сделать это в app/models/AccountValidator.php
Laravel with Confide - Пользовательский валидатор не работает?
<?php
use Zizaco\Confide\UserValidatorInterface;
use Zizaco\Confide\ConfideUserInterface;
class AccountValidator implements UserValidatorInterface {
public function validate(ConfideUserInterface $user) {
unset($user->password_confirmation); // Because this column doesn't really exists.
Log::info("Using a custom validator!");
return true;
}
}
и app/start/global.php
App::bind('confide.user_validator', 'AccountValidator');
Я пытался ставить свои правила в функции валидации, а также за ее пределами, не повезло , вместо проверки чего-либо он попытается вставить пустые значения в базу данных. Я также пробовал composer dump-autoload
, как упомянуто here. Я нашел , но единственный ответ, похоже, не является «официальным» решением, и Zizaco не ответил на this question на Github (да, я тоже пробовал этот код), поэтому я не уверен, что еще попробовать.
Любые предложения?
Хм ... похоже, что вы делаете это правильно. Добавили ли вы 'implements ConfideUserInterface' в свою модель и добавили' use ConfideUser' внутри декларации класса? –
Да, это всегда одна из первых вещей, которые я делаю. Он проверяет поля имени пользователя, электронной почты и пароля - ни одна из дополнительных функций. Однако я заметил, что в пакете поставщика есть два разных набора правил (https://github.com/Zizaco/confide/blob/master/src/Confide/UserValidator.php#L44). Должен ли я также передавать этот многомерный массив в пользовательский валидатор? – Winter
Похоже, вам нужно передать '$ rules' как многомерный массив. Посмотрите на строку 163 UserValidator.php. Я проверил свой «UserValidator», а мой настроен как многомерный. –