Этот вопрос похож на этот , но (буквально) переносит его на другой уровень или уровни.
Справочная информация. Я использую PHP-структуру Kohana и, в частности, библиотеку ORM .
По сути, когда вы просматриваете результаты БД с ним, вы можете получить доступ к значениям поля в качестве свойств объекта. Любые объединенные таблицы могут быть доступны в иерархическом порядке. Например:
$users = ORM::factory('user')->with('city')->with('city:country')->find_all();
foreach ($users as $user) {
echo "<p>{$user->name} ({$user->city->name}, {$user->city->country->name})</p>";
}
выведет:
Пользователь 1 (Город 1, Страна 1)
Пользователь 2 (Город 2, Страна 1)
Пользователь 3 (Город 2, Страна 1)
Пользователь 4 (Город 3, Страна 2)
Пользователь 5 (Город 4, Страна 2)
и т.д.
Теперь мой вопрос: есть ли способ получить доступ к иерархическим свойствам объекта для любого количества уровней. В идеале я хотел бы сделать что-то вроде этого:
$users = ORM::factory('user')->with('city')->with('city:country')->find_all();
$var2 = 'name';
$var2 = 'city->name';
$var3 = 'city->country->name';
foreach ($users as $user) {
echo "<p>" . $user->{$var1} . "(" . $user->{$var2} . ", " . $user->{$var3} . ")</p>";
}
Возможно ли это каким-то простым способом, которого мне не хватает?
Большое спасибо!