Задать вопрос
ixley
@ixley

Как вылечить count(): Parameter must be an array or an object that implements Countable?

Привет

Есть opensource движок на yii
Есть nginx с ubuntu 16.04 и php 7.4

После установки движка на сервер в шаблоне на фронте выдаёт ошибку
count(): Parameter must be an array or an object that implements Countable


В логах такое
2021/02/08 23:14:44 [error] 19068#19068: *137 FastCGI sent in stderr: "PHP message: PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/сайт/vendor/yiisoft/yii/framework/db/ar/CActiveFinder.php on line 1430PHP message: PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/сайт/vendor/yiisoft/yii/framework/db/ar/CActiveFinder.php on line 1430" while reading response header from upstream, client: айпиадрес, server: out.ixley.ru, request: "GET /store?q= HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.4-fpm.sock:", host: "сайт", referrer: "сайт"


В этой 1430 линии такой код
if(count($fks)!==count($pkTable->primaryKey))

А вообще так
$fks=preg_split('/\s*,\s*/',$relation->foreignKey,-1,PREG_SPLIT_NO_EMPTY);
		if(count($fks)!==count($pkTable->primaryKey))
			throw new CDbException(Yii::t('yii','The relation "{relation}" in active record class "{class}" is specified with an invalid foreign key. The columns in the key must match the primary keys of the table "{table}".',
						array('{class}'=>get_class($parent->model), '{relation}'=>$relation->name, '{table}'=>$pkTable->name)));


Разрабы пишут у себя в доках (возможно по этой теме как раз)
Проблемы CWebUser и модуля Gii
Так как модуль Gii использует компонент CWebUser, идущий в комплекте с Yii и не позволяет в качестве "пользователя" указать другой компонент, могут возникать проблемы связанные с отсутствием методов. Дело в том, что в Юпи! имеется своя реализация компонента CWebUser, а именно - YWebUser. Данная проблема известна, но решения, без правки кода фреймворка - нет. Потому, если вы столкнулись с данной проблемой - просто закоментируйте (отключите) модуль Gii.


Но я не знаю как закоменить этот модуль, гугл не помог:(
  • Вопрос задан
  • 344 просмотра
Подписаться 1 Простой 8 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы