Задать вопрос
@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
  • Вопрос задан
  • 508 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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;
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽