Как перебирать «параметры» элемента ZOO Joomla?

Элемент моего интереса находится в таблице __ zoo_item . Мой запрос:

$query
    ->select($db->quoteName(array('params')))
    ->from($db->quoteName('#__zoo_item'));

$db->setQuery($query);
$resultado = $db->loadObjectList();

Содержимое params является JSON следующим образом:

 {
    "metadata.title": "",
    "metadata.description": "",
    "metadata.keywords": "",
    "metadata.robots": "",
    "metadata.author": "",
    "config.enable_comments": "0",
    "config.primary_category": "27"
}

Мне нужно получить значение primary_category . То есть, мне нужно получить: 27 . Как я могу это сделать? Я пытаюсь восстановить его следующим образом:

foreach ($resultado as value) {
    if ( is_object($value) ) {
        echo $value->config.primary_category;
    }
}

Это лучший способ сделать это? Браузер возвращает это: primary_category . Как получить значение: 27?

1 голос | спросил George Berkeley 15 J000000Friday16 2016, 07:57:50

3 ответа


0

Синтаксис ZOO немного отличается. Проверьте это: http://yootheme.com/zoo/documentation/developers/accessing -элементное-данные

ответил YellowWebMonkey 15 J000000Friday16 2016, 18:44:17
0

Я не думаю, что ваш код является каноническим способом доступа к значениям параметров ZOO, но с помощью вашего метода вы, вероятно, хотите что-то вроде:

$value = json_decode($value);
$primary_category = $value->{'config.primary_category'});
ответил codinghands 8 32017vEurope/Moscow11bEurope/MoscowWed, 08 Nov 2017 12:34:40 +0300 2017, 12:34:40
0

Точка в имени свойства вызывает проблему. Несколько способов решить эту проблему:

  1. Назначьте имя свойства переменной:

    $ value = json_decode ($ value);

    $ property = 'config.primary_category';

    echo $ value-> $ property;

  2. Включить значение свойства в фигурных скобках:

    $ value = json_decode ($ value);

    echo $ value-> {'config.primary_category'};

  3. Поверните параметры в объект реестра (это способ Joomla):

    использовать Joomla \ Registry \ Registry;

    $ value = новый реестр (значение $);

    echo $ value-> get ('config.primary_category');

ответил Sharky 5 PM00000040000001231 2018, 16:47:12

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132