Задать вопрос
@vyaznikov1991
Набирающийся мудрости нуб-junior

Как вывести пустое tv поле MODX REVO?

Имеется простейший снипет, который получает значение tv полей:

$where = array (
    'contentid' => $resourceId, // id ресурса
    'tmplvarid' => $variableId // id поля
);

$tv = $modx->getObject('modTemplateVarResource', $where); // получение tv.объекта
$val = $tv->get('value'); // получение значения

return $val;


Но, если эти поля не заполнить в ресурсе, то появляется ошибка вида:
Fatal error: Call to a member function get() on null in /home/.../www/core/cache/includes/elements/modsnippet/6.include.cache.php on line 19

Как это можно обойти? Нужно что бы в некоторых случаях поля могли быть не заполненными, т.е. пустыми.

MODX REVO 2.5.5
PHP 5.6
  • Вопрос задан
  • 501 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@vyaznikov1991 Автор вопроса
Набирающийся мудрости нуб-junior
спасибо за идею qork

Переписал сниппет:

$where = array (
    'contentid' => $resourceId, // id ресурса
    'tmplvarid' => $variableId // id поля
);


$tv = $modx->getObject('modTemplateVarResource', $where); // получение tv.объекта

if(!$tv) return;


$val = $tv->get('value'); // получение значения

return $val;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
qork
@qork
{ background: #F00B42 }
if(!$resourceId || !$variableId) return;
Ответ написан
Ваш ответ на вопрос

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

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