首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silex自定义Validator注册

Silex自定义Validator注册
EN

Stack Overflow用户
提问于 2014-09-11 08:54:15
回答 1查看 2K关注 0票数 0

我创建了一个自定义验证器,我想在Silex中使用它,但是在访问它时,我得到了以下错误:

代码语言:javascript
复制
PHP Fatal error:  Class 'Sisu\\Validator\\Constraints\\ImeiValidator' 
not found in var/www/sisuwhitelabel/vendor/silex/silex/src/Silex/ConstraintValidatorFactory.php 
on line 85

我的限制是:

Imei.php

代码语言:javascript
复制
<?php
namespace Sisu\Validator\Constraints;

use Symfony\Component\Validator\Constraint;

class Imei extends Constraint
{
    public $message = "Here message";

    public function validateBy()
    {
        return get_class($this).'Validator';
    }
}

我的退伍军人:

ImeiValidator.php

代码语言:javascript
复制
<?php

namespace Sisu\Validator;

use Silex\Application;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Constraint;

class ImeiValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {
        $this->context->addViolation('Some message %s', 'Some Value');      
        return false;
    }
}

我的服务提供者:

ImeiValidatorServiceProvider.php

代码语言:javascript
复制
<?php
namespace Sisu\Provider;

use Silex\Application;
use Silex\ServiceProviderInterface;
use Sisu\Validator\ImeiValidator;

class ImeiValidatorServiceProvider implements ServiceProviderInterface
{
    public function register(Application $app)
    {
        $app['validator.imei'] = $app->share(function($app) {
            $validator = new ImeiValidator();
            return $validator;
        });
    }

    public function boot(Application $app)
    {
    }
}

登记电话:

代码语言:javascript
复制
$app->register(new Sisu\Provider\ImeiValidatorServiceProvider());

我在应用程序中使用了这样的方法:

代码语言:javascript
复制
$form->add('productIdentifier', 'text', array(
                'required' => false,
                'constraints' => array(
                    new Imei(
                        array('message' => 'xxxxx')
                    )
)
);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-11 10:29:10

我找到了答案。约束Imei和验证器ImeiValidator应该位于同一个文件夹中。

关于这一主题的更多内容如下:

https://github.com/pix-art/Silex-Skeleton/tree/master/src/Constraint

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25783132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档