我想要得到symfony的Twig与RedBean搭配很好。树枝 - 如何在模板中本地显示RedBean关系?
我可以显示一个顶级bean的数据,但没有任何关系。
这里就是我的意思是:
在我的控制,我打电话嫩枝以标准方式(有些伪代码):
// Controller
$vars = array(
'people' = R::find('person')
);
return $this->app['twig']->render('index.twig',$vars);
我豆类的结构如下:
PERSON
->id
->first_name
->last_name
->company <-- (this represents a 'company' bean)
COMPANY
->id
->name
Inside index.twig,我可以很容易输出这样的人的名字...
{% for person in people %}
{{person.first_name}}
{% endfor %}
...但我希望能够访问是关联公司豆,像这样...
{% for person in people %}
**{{person.company.name}}**
{% endfor %}
我该怎么做,从一个树枝模板中,而不需要额外的控制器/模型逻辑?
我还没有试过RedBeans S2内部,而且看起来它会工作。确认“echo $ person-> company-> name”给出了预期的结果。您的关系可能没有正确设置? – Cerad 2012-03-06 14:55:59
它在控制器内部按预期工作......即echo $ person-> company-> name正常工作。它只是在TWIG文件中,它不是。我甚至设置了一个print_r过滤器({{person | print_r}}),并且树枝模板正确地将'person'var标识为RedBean_OODBBean对象...但person.company会变为null。很奇怪! – 2012-03-06 15:06:40
Twig通过查找实际实例数据或方法名称来工作。 RedBeans将这些东西隐藏在神奇的方法背后。您可以尝试添加getCompany()自定义方法http://www.redbeanphp.com/manual/custom_getters,但我认为这不会有帮助。除了将人员bean包装到某种访问器对象之外,我真的没有看到一个解决方案。 – Cerad 2012-03-06 15:55:00