此问题与this one类似,但是(字面上)将其带到另一个级别或级别。不确定层数的对象属性
背景:我正在使用Kohana PHP framework,特别是ORM library。
基本上,当您通过数据库结果循环访问时,可以将字段值作为对象的属性进行访问。任何连接的表都可以以分层方式访问。例如:
$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>";
}
这是可能的一些简单的方式,我失踪了?
非常感谢!
对不起,我应该指定我使用Kohana 2.3.4 - 这个功能似乎只Kohana 3。 这就是说,这是一个很好的解决方案,如果我使用Kohana 3,我肯定会使用它。 – 2010-01-15 18:51:22
好吧,我编辑了答案来澄清这一点。 – dusan 2010-01-15 19:27:35