PHP warning: count(): Parameter must be an array or an object that implements Countable
Вызов яндекс карт вызывает данную ошибку PHP warning: count(): Parameter must be an array or an object that implements Countable
{$_modx->runSnippet('!yandexMaps', [
'id' => '$_modx->resource.id',
'tpl' => 'tpl.yandexMaps',
'tvCoords' => '28'
])}
{$_modx->runSnippet('!yandexMaps', [
'id' => '$_modx->resource.id',
'tpl' => 'tpl.yandexMaps',
'tvCoords' => '28'
])}
Комментарии: 12
Я так понимаю не работает вызов? И вы хотите чтобы сниппет не кешировался? Попробуйте убрать из названия!.. Если я ничего не путаю, то вызов снипетов подобным образом по умолчанию не кешируется, в отличие от такой записи
{'SnippetName'|snippet}
Спасибо.
Ошибку убрал отключив кэширование для этого сниппета. Конечно, не совсем верное решение, но для моей ситуации подходящее.
Ошибку убрал отключив кэширование для этого сниппета. Конечно, не совсем верное решение, но для моей ситуации подходящее.
Артур, мне прямо стала интересна ваша логика.
Поделитесь пожалуйста.
Автор пишет, что у него при запуске сниппета выскакивает ошибка, что передаваемый параметр должен быть массивом или представлять собой нечто из разряда «Countable».
Что здесь говорит о том, что автор хочет отключить кеширование?)) И тем не менее это помогает. Мой мозг в недоумении))
Я на днях находился в подобном недоумении. Общение с заказчиком по одному проекту ведется у нас только через директора. Директор у нас женщина и заказчик — женщина. Я час рассказывал директору что и как нужно спросить, потому что вопрос технический. Она задает вопрос заказчику, я с ужасом понимаю что вопрос вообще про другое, от слова совсем. Заказчик женщина читает вопрос, дает ответ, который тоже не имеет никакого отношения к вопросу и тем не менее ответ оказывается вполне приемлемым для меня. Я подумал что в тот момент я впервые за 40 лет понял что такое, женская логика)
Поделитесь пожалуйста.
Автор пишет, что у него при запуске сниппета выскакивает ошибка, что передаваемый параметр должен быть массивом или представлять собой нечто из разряда «Countable».
Что здесь говорит о том, что автор хочет отключить кеширование?)) И тем не менее это помогает. Мой мозг в недоумении))
Я на днях находился в подобном недоумении. Общение с заказчиком по одному проекту ведется у нас только через директора. Директор у нас женщина и заказчик — женщина. Я час рассказывал директору что и как нужно спросить, потому что вопрос технический. Она задает вопрос заказчику, я с ужасом понимаю что вопрос вообще про другое, от слова совсем. Заказчик женщина читает вопрос, дает ответ, который тоже не имеет никакого отношения к вопросу и тем не менее ответ оказывается вполне приемлемым для меня. Я подумал что в тот момент я впервые за 40 лет понял что такое, женская логика)
Да всё просто, '!yandexMaps' так пишут когда хотят чтобы сниппет некешировался, только в том варианте который предложил автор это не работает, там он и так не кешируется. А дальше тут уже и про TV написали и вообще всё заработало)))
'tvCoords' => '28'
судя по названию этого параметра там должно быть название ТВ поля, в котором будут указаны координаты, а не просто строка.
Это уже были эксперименты, сюда нечаяно попало.
В любом случае дело не в этом.
В любом случае дело не в этом.
В примере документации, да и как во всех вызовах в поле указания TV указывается название, а не ID
'tvCoords'=>'coords'
Как минимум вот это '$_modx->resource.id' должно быть без кавычек.
Работает и так и так
А у меня стоит на submit minishop2 «msCustomerAutoReg», и он при создании нового пользователя, когда логгинет в ЛК, выдаёт это предупреждение на стоках core/model/modx/error/moderror.class.php:168 и 250, пока временно внёс правки хотя знаю, что так делать нельзя.
168 строка
168 строка
if (is_array($this->errors) || is_object($this->errors)) {
$count_errors = count($this->errors);
} else {
$count_errors = '';
}
return array (
'success' => $status,
'message' => $this->message,
'total' => isset ($this->total) && $this->total != 0 ? $this->total : $count_errors,
'errors' => $this->errors,
'object' => $objarray,
);
250 строкаpublic function hasError() {
if (is_array($this->errors) || is_object($this->errors)) {
$count_errors = count($this->errors);
}
return $count_errors > 0 || $this->message != '';
}
Подскажите что за правки? Потому, что тоже ловлю эту ошибку. Этот-же компонент.
В феноме чанка tpl.yandexMaps надо заменить счетчик.
{include ++$count}
на{var $count = ++$count}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.