小编Bry*_*yan的帖子

zend表单电子邮件验证

我有以下代码为用户的电子邮件地址生成输入字段

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email:')
    ->addFilters(array('StringTrim', 'StripTags'))
    ->addValidator('EmailAddress')
    ->addValidator(new Zend_Validate_Db_NoRecordExists(
                                                        array(
                                                                'adapter'=>Zend_Registry::get('user_db'),
                                                                'field'=>'email',
                                                                'table'=>'tbl_user'
                                                                )))
    ->setRequired(true)
    ->setDecorators(array(
                            array('Label', array('escape'=>false, 'placement'=>'append')),
                            array('ViewHelper'),
                            array('Errors'),
                            array('Description',array('escape'=>false,'tag'=>'div')),
                            array('HtmlTag', array('tag' => 'div')),
                        ));
$this->addElement($email);
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果用户为电子邮件输入无效的主机名,则会产生3个错误.假设用户输入'admin @ l'作为电子邮件地址,错误将是
*'l'没有电子邮件地址的有效主机名'admin @ l'
*'l'与DNS主机名
*' 的预期结构不匹配l'似乎是本地网络名称,但不允许使用本地网络名称

我只是希望它只提供一个自定义错误而不是所有这些.如果我通过addErrorMessage方法设置错误消息"无效的电子邮件地址",它将再次针对db_validation生成相同的消息.

zend-framework email-validation zend-form zend-form-element

8
推荐指数
2
解决办法
3万
查看次数

Zend Framework生成唯一的字符串

我想生成一个唯一的4-6字符长的AlphaNumeric字符串,以便在db中保存每条记录(用户).db字段具有唯一索引,因此尝试保存预先存在的字符串会生成错误.现在我生成一个随机字符串并使用try-catch,所以当添加新记录时如果它抛出异常,我生成另一个随机字符串并尝试再次保存,代码继续尝试,直到它成功添加记录.这整个解决方案不仅看起来很重,而且很难看,所以我想改变它.我对优雅的解决方案感兴趣,欢迎任何帮助/指导.

php zend-framework unique zend-db

5
推荐指数
1
解决办法
5480
查看次数

如何使用javascript更改YUI3选项卡

我想提供一个使用YUI3更改选项卡的附加链接.
我有一个分布在多个标签上的表单,所以在标签内容的底部我想要一个"继续"链接,它将用于下一个标签.

有任何想法吗.

yui3 tabview

4
推荐指数
1
解决办法
1833
查看次数

Zend EmailAddress验证返回多个错误

当用户输入无效的电子邮件地址时,我无法使Zend_Validate_EmailAddress只显示1条错误消息.代码是

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email: ')
    ->addFilter('StringTrim')
    ->addFilter('StripTags')
    ->addValidator('EmailAddress',true, array(... error msgs ...))
    ->addValidator(new Zend_Validate_Db_NoRecordExists(array( ... db + table + col details ... ),true, array(... error msgs ...)))
    ->setRequired(true);
$this->addElement($email);
Run Code Online (Sandbox Code Playgroud)

当用户输入无效的电子邮件时user@email(如果没有tld),它会显示多个错误,例如

'email' is no valid hostname for email address 'user@email'  
'email' does not match the expected structure for a DNS hostname  
'email' appears to be a local network name but local network names are not allowed  
Run Code Online (Sandbox Code Playgroud)

我无法使用,addErrorMessage('...')因为我需要为无效的电子邮件显示不同的消息,并且电子邮件已存在于数据库中.因此,任何想法如何使EmailAddress验证只返回1错误消息.

zend-framework zend-form zend-validate zend-form-element

2
推荐指数
1
解决办法
2002
查看次数

关于存储库的域驱动设计问题

我正在尝试实现DDD,所以我创建了以下类
- 用户[域模型]
- UserRepository [管理对象的中央工厂]
- UserMapper + UserDbTable [映射应用程序功能的Mapper并提供CRUD实施]

我的第一个问题是,当模型需要与持久层进行通信时,它是否应该与存储库或映射器联系?就我个人而言,我认为它应该询问存储库,它将与映射器联系并提供所需的功能.

现在我的第二个问题是,同一个类的所有对象应该只有一个存储库,这意味着我将创建一个单例.但如果我的应用程序有很多域模型(比方说20),那么将有20个单身人士.它感觉不对劲.另一种选择是使用DI(依赖注入),但我使用的框架(Zend Framework 1.11)不支持DIC.

我的第三个

singleton domain-driven-design dependency-injection zend-framework

2
推荐指数
1
解决办法
833
查看次数