Переменная в пути обьекта в FENOM

Подскажите, может кто знает как подставить переменную в путь объекта?

Например итоговый вывод такой: $resp->material->wall->width, но нужно что-то на подобие $resp->material->($type)->width. То есть часть пути объекта является переменной. Всю голову сломал.

Вижу, что есть не понимание — пожалуй напишу детский пример.
Есть 3 значения в объекте $resp, которые нужно перебрать: wall, ceil, floor методом foreach. Внимание вопрос: как можно подставить переменную чтобы fenom сработал?
{foreach ['wall','ceil','floor'] as $type}
	{$resp->material->($type)->width}
{/foreach}
Евгений Лазарев
26 июля 2022, 14:09
modx.pro
654
0

Комментарии: 10

Наумов Алексей
26 июля 2022, 14:14
0
Документация говорит, что вот такое возможно:
{$foo.$bar}
github.com/fenom-template/fenom/blob/master/docs/ru/syntax.md
    Евгений Лазарев
    26 июля 2022, 14:18
    0
    Точка ставится при массиве. Так что в ответ знакомое: «Cannot use object of type stdClass as array...»
    Артур Шевченко
    26 июля 2022, 21:34
    -1
    А причём тут fenom?
      Евгений Лазарев
      26 июля 2022, 22:20
      0
      Вообще не понял ваш вопрос. Но все равно отвечу — вывод на странице. Он в этом участвует.
        Артур Шевченко
        27 июля 2022, 14:13
        0
        Переформулирую вопрос.
        $resp->material->wall->width
        Это не синтаксис феном. Это не путь к файлу. Так чего же вы хотите?
          Евгений Лазарев
          27 июля 2022, 14:22
          0
          Артур, ну если вам нужно еще детальнее, то пускай будет так, чтобы было понятнее что это синтаксис феном:
          {$resp->material->wall->width}
          Если вы не знаете ответа, зачем спамить в тикете? Вопрос был поставлен ясно и четко.
            Артур Шевченко
            27 июля 2022, 21:26
            0
            Извините, я в вашем велосипеде, не узнал fenom. Желаю удачи.
      Алексей Смирнов
      26 июля 2022, 22:36
      0
      А обязательно чтобы тот же $resp был обьектом, а не массивом? вы же как-то получаете обьект, так переведите его в массив. )
      Максим
      27 июля 2022, 22:32
      +1
      Если не сработает стандартная PHP конструкция
      $resp->material->{$type}->width
      , то рекомендую написать сниппет или модификатор, который корректно обработает данные и вернет желаемый результат. Все же стоит помнить о том, что Fenom — это шаблонизатор. И как в любом шаблонизаторе должно быть минимум логики.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10