С Codeigniter, как я могу принять евро в форме проверки? - PullRequest
0 голосов
/ 21 января 2012

Я проверяю свое поле по "десятичной", но я бы хотел поддержать ЕВРО. Как я могу проверить поле, видя, что евро может иметь десятичную точку или запятую? В моей БД я собираюсь преобразовать все в INT и умножить на 100.

1 Ответ

2 голосов
/ 21 января 2012

Вам необходимо создать файл в /application/libraries/ с именем MY_Form_validation.php

. В этом файле вы можете переопределить десятичный метод, используемый для проверки десятичных чисел.Ваш файл должен выглядеть следующим образом

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation {
    /**
     * Decimal number
     *
     * @access  public
     * @param   string
     * @return  bool
     */
    function decimal($str)
    {
        return (bool) preg_match('/^[\-+]?[0-9]+[\.,][0-9]+$/', $str);
    }
}

// END Form Validation Extension Class

/* End of file MY_Form_validation.php */
/* Location: ./application/libraries/MY_Form_validation.php */

Разница между этим методом и оригиналом - [\.,] в середине.В исходном файле это просто \., что позволяет использовать период .

Если вы не хотите изменять способ работы десятичного метода, вы можете переименовать его, например, в euro изатем просто добавьте euro в качестве правила проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...