Страница 1 из 1

Call to undefined function yii\validators\json_encode()

Добавлено: 2017.04.29, 19:36
VLD-UKRAINE
Привет!
После установки Yii 2 и удовлетворения всех зависимостей requirements.php индексный файл открывается без проблем, страница About тоже, а вот при попытке открыть вкладки Contact или Login выдается ошибка (отладчик включен) Call to undefined function yii\validators\json_encode() и дается ссылка на файл и строку с ошибкой

Код: Выделить всё

    /**
     * @inheritdoc
     */
    public function clientValidateAttribute($model, $attribute, $view)
    {
        ValidationAsset::register($view);
        $options = $this->getClientOptions($model, $attribute);
 
       return 'yii.validation.required(value, messages, ' . json_encode($options, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . ');';
    }
 
    /**
     * @inheritdoc
     */
    
Ошибка в 94 строке стандартного файла RequiredValidator.php (return 'yii.validation.required .......).
Система
Apache/2.4.10 (Debian)
Yii Framework/2.0.11.2
После стандартной установки.

Базу данных я не создавал, возможно идет проверка на ее существование ( точнее я ее создал но таблиц в ней нет, только имя базы - yii2basic, в db.php указал данные для подключения к базе, - думаю для старта должно было хватить, структуру и данные для тестовой базы пока не нашел, может где есть дамп - подскажите пожалуйста). Вот такая проблема. Подскажите направление копания!! Спасибо!

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.04.30, 23:14
samdark
Версия PHP какая?

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 02:51
zelenin
не видит он json_encode из коробки, значит, не стоит расширение json.

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 08:06
VLD-UKRAINE
Прежде чем написать вопрос, я почитал что Json был удален из php по лицензионным соображениям, и я доставлял его в ручную, так же я перепроверил все зависимости.
php --version
PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 09:49:20)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Я проверял - json стоит (php5-json).
apt-get install php5-json
Уже установлена самая новая версия php5-json.
Это расширения:
/etc/php5/apache2/conf.d/05-opcache.ini,
/etc/php5/apache2/conf.d/10-pdo.ini,
/etc/php5/apache2/conf.d/20-gd.ini,
/etc/php5/apache2/conf.d/20-imagick.ini,
/etc/php5/apache2/conf.d/20-intl.ini,
/etc/php5/apache2/conf.d/20-json.ini,
/etc/php5/apache2/conf.d/20-memcache.ini,
/etc/php5/apache2/conf.d/20-mysql.ini,
/etc/php5/apache2/conf.d/20-mysqli.ini,
/etc/php5/apache2/conf.d/20-pdo_mysql.ini,
/etc/php5/apache2/conf.d/20-readline.ini

Может еще есть какой то пакет Json надо добавить или его надо ставить в какой-то очередности (первым - последним) и надо ли прописывать в php.ini как то отдельно,
extension=pdo.so
extension=pdo_mysql.so
я прописывал отдельно.
Спасибо!

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 08:24
VLD-UKRAINE
Добавил в php.ini extension=json.so - ситуация не изменилась.

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 08:58
VLD-UKRAINE
И в выводе phpinfo() отдельного раздела с указанием json support enabled и указание json version тоже нет (возможно его и не должно быть) но я перебираю все возможные варианты.

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 09:19
VLD-UKRAINE
Хотя php -i дает такой вывод по json:
php -i | grep json
/etc/php5/cli/conf.d/20-json.ini,
json
json support => enabled
json version => 1.3.6
Все - варианты закончились! Дайте направление еще!

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 12:23
phpshko
А вы правили ini файл который показал phpinfo() в браузере в строке "Loaded Configuration File" ? Скорее всего вы поправили только для cli версии

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 13:02
VLD-UKRAINE
В обоих файлах в разделе Dynamic Extensions прописал extension=json.so
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini

Re: Call to undefined function yii\validators\json_encode()

Добавлено: 2017.05.01, 13:18
VLD-UKRAINE
В общем снес я Json (apt-get purge php5-json) с ним удалилось еще 6 пакетов libapache2-mod-php5 php-pear php5 php5-cli php5-readline pkg-php-tool, после повторной установки все заработало! Спасибо кто откликнулся! Начнем изучение!