Laravel with Confide - 自定义验证器无法正常工作?

时间:2014-12-27 03:42:07

标签: php validation laravel

在解释如何使用自定义验证程序时,Zizaco/confideLaravel包的文档不是很具描述性。我希望能够在我的注册过程中验证名字,姓氏,地址,城市,州等字段,但是除了修改供应商包之外我还没有发现任何有用的东西。根据文档,我应该能够将其放在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 here。我发现this StackOverflow question但唯一的答案似乎不是“官方”解决方案,而Zizaco在Github上没有回复this question(是的,我确实尝试过该代码),所以我'我不知道还有什么可以尝试的。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我就是这样做的:

<?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',
        ]
    ];
}