在解释如何使用自定义验证器时,Laravel 的 Zizaco/confide 包的文档描述性不强。我希望能够在注册过程中验证名字、姓氏、地址、城市、州等字段,但是除了修改供应商包之外,我没有找到任何有用的东西。根据文档,我应该能够将其放在app/models/AccountValidator.php
<?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
。我找到了这个 StackOverflow 问题,但唯一的答案似乎不是"官方"解决方案,Zizaco 没有在 Github 上回复这个问题(是的,我也尝试了该代码),所以我不确定还能尝试什么。
有什么建议吗?
我是这样做的:
<?php
use Zizaco'Confide'UserValidator as ConfideUserValidator;
use Zizaco'Confide'UserValidatorInterface;
class UserValidator extends ConfideUserValidator implements UserValidatorInterface
{
public $rules = [
'create' => [
'username' => 'required',
'email' => 'required|email',
'password' => 'required|min:4',
],
'update' => [
'username' => 'required',
'email' => 'required|email',
'password' => 'required|min:4',
]
];
}