【问题标题】:Zend InputFilter requires intl PHP extension?Zend InputFilter 需要国际 PHP 扩展?
【发布时间】:2015-07-26 09:49:32
【问题描述】:

我正在为我的表单设置一些过滤器和验证器,但是当我提交它时,出现此错误:“Zend\I18n\Filter 组件需要 intl PHP 扩展”。这是因为 Alnum 和 Alpha 验证器吗?

代码:

     public function getInputFilter() {
        if (!$this->inputFilter) {
            $inputFilter = new InputFilter();

            $inputFilter->add(array(
                'name' => 'email',
                'required' => true,
                "filters" => array(
                    array('name' => 'StringTrim'),
                    array('name' => 'StripTags')),
                'validators' => array(
                    array(
                        'name' => 'Regex',
                        'options' => array(
                            'pattern' => '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/',
                            'messages' => array(
                                Regex::NOT_MATCH => 'Е-майл адреса е невалиден.',
                            ),
                        ),
                        'break_chain_on_failure' => true
                    ),
                    array(
                        'name' => 'EmailAddress',
                        'options' => array(
                            'messages' => array(
                                EmailAddress::INVALID_FORMAT => "Е-майл адреса е невалиден.",
                                EmailAddress::INVALID => "",
                                EmailAddress::INVALID_LOCAL_PART => "",
                                EmailAddress::INVALID_HOSTNAME => "",
                                EmailAddress::INVALID_SEGMENT => "",
                                EmailAddress::DOT_ATOM => "",
                                EmailAddress::INVALID_MX_RECORD => "",
                            ),
                        ),
                    ),
                ),
            ));

            $inputFilter->add((array(
                'name' => 'name',
                'required' => true,
                "filters" => array(
                    array('name' => 'StringTrim'),
                    array('name' => 'StripTags')),
                'validators' => array(
                    array(
                        'name' => 'Alpha',
                    ),
                ),
            )));

            $inputFilter->add((array(
                'name' => 'password',
                'required' => true,
                "filters" => array(
                    array('name' => 'StringTrim'),
                    array('name' => 'StripTags')),
                'validators' => array(
                    array(
                        'name' => 'Alnum',
                    ),
                    array(
                        'name' => 'StringLength',
                        'options' => array(
                            'min' => 6,
                            'max' => 12,
                            'messages' => array(
                                StringLength::INVALID => "Паролата трябва да е от 6 до 12 символа",
                            ),
                        ),
                    ),
                ),
            )));
          }

【问题讨论】:

标签: php zend-framework zend-framework2


【解决方案1】:

通过转到 php.ini 并取消注释 extension=php_intl.dll 来修复它

【讨论】:

【解决方案2】:

在 Ubuntu 16.04 上,使用 php 5.6,尝试:

sudo apt-get install php5.6-intl

然后

sudo service apache2 restart

【讨论】:

    【解决方案3】:

    在 Ubuntu 18.04 上,使用 PHP 7.2,尝试:

    sudo apt-get install php7.2-intl
    sudo service apache2 restart
    

    如果不起作用,请在以下位置启用 extension=php_intl.dll:

    vim /etc/php/7.2/apache2/php.ini
    sudo service apache2 restart
    

    【讨论】:

      【解决方案4】:

      如果您在 MAC OS X 上使用 XAMPP,请将 extension=intl.so 添加到您的 /Applications/XAMPP/xamppfiles/etc/php.ini 文件中并重新启动 Apache。 如果它仍然无法正常工作,则需要安装 intl。 您可以按照此处的说明进行操作https://stackoverflow.com/a/32404183/3303055

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-01
        • 2018-03-26
        • 2015-03-04
        • 1970-01-01
        • 2017-12-01
        • 2018-07-18
        • 2018-03-21
        • 2014-06-20
        相关资源
        最近更新 更多