Я просмотрел несколько ответов здесь, и я просто совершенно не могу получить то, что я ищу, так что, может быть, если я спрошу его исключительно к моей ситуации:динамические переменные в скорости
Во-первых, давайте я говорю, что я очень новый для Velocity, но я очень хорошо разбираюсь в PHP. Я знаю, что мы сравниваем яблоки с апельсинами здесь, но просто носим с собой - только через пример.
Представьте себе: у меня есть некоторые данные в массиве объектов, которые свежие из базы данных. Внутри каждой записи есть уникальный идентификатор. Я хочу использовать этот уникальный идентификатор в качестве имени переменной в объекте.
В PHP это глупо легко:
<?php
$goalObject = new stdObject();
foreach ($row as $data)
{
$identifier = $data->unique_id;
$goalObject->$$identifier = new stdObject();
$goalObject->$$identifier->name = $data->name;
$goalObject->$$identifier->total = $data->num_apples + $data->num_oranges;
}
Обратите внимание на двойной сигила для identifier
($$).
Теперь стоит отметить, что unique_id действительно начинается с буквы, поэтому он должен быть полезен для использования в качестве имени переменной. Пример unique_id был бы чем-то вроде AAA0000 или что-то в этом роде. Нет пробелов, дефисов, никаких знаков препинания.
Итак, мой объект цели будет $goalObject->AAA0000->name
или $goalObject->AAA0000->total
. (Или $goalObject.AAA0000.name
и $goalObject.AAA0000.total
в скорости.)
Если бы я мог сделать что-то подобное, я был бы так счастлив. Но из того, что я могу сказать, Velocity не позволяет ничего такого крутого, как это.
Пожалуйста, помогите мне здесь.
Заранее благодарю за любые ответы, которые я могу получить.
Это похоже на дубликат недавней публикации: http://stackoverflow.com/questions/17084542/construct-variable-names-dynamically-in-velocity – Edd