我有一个工作流体模板文件,如下所示:
<table class="my-extension" >
<tr>
<td>
<f:translate key="my-extension_domain_model_appointment.translator" />
</td>
<td>
{appointment.translator}
</td>
</tr>
<tr>
<td>
<f:translate key="my-extension_model_appointment.bringtranslator" />
</td>
<td>
{appointment.bringtranslator}
</td>
</tr>
</table>在我的模型中,我得到了类appointment,它有两个属性translator和bringtranslator。
我想遍历所有的属性,所以如果我再添加一个属性,我就不需要修改html文件中的任何内容了。所以我在寻找这样的东西:
<f:for each="{appointmentproperty}" as="property">
<tr>
<td>
<f:translate key="my-extension_domain_model_appointment."+property />
</td>
<td>
{appointment.property}
</td>
</tr>
</f:for>谁能告诉我怎么用液体做这个吗?(顺便说一句。我仍在使用旧的4.7.7版本)
发布于 2015-07-05 12:21:01
你不能当机立断地这么做。但是,如果您在流体({model.property})中访问模型的一个属性,则在遮罩下调用getProperty()方法。
因此,如果您想要一些神奇的功能,如果您的模型增长自动扩展您的视图,您必须实现它。
我将给出一个例子,但是有其他方法可以这样做:您可以向模型中添加一个方法:
/**
* @return array
*/
public function getPropertiesForTableView() {
return array(
'property1' => $this->getProperty1(),
'property2' => $this->getProperty2()
);
}在您的视图中,现在可以访问这个新的Getter方法:
<f:for each="{appointment.propertiesForTableView}" as="propertyValue" key='propertyName'>
<tr>
<td>
<f:translate key="my-extension_domain_model_appointment.{propertyName}" />
</td>
<td>
{propertyValue}
</td>
</tr>
</f:for>如果您添加了一个应该在视图中显示的属性(将该属性添加到您的数组中),您仍然必须“做”一些事情。但是你不需要调整你的模板。
发布于 2015-07-02 17:14:52
<f:for each="{appointments}" as="appointment">
<tr>
<td>
<f:translate key="my-extension_domain_model_appointment."{appointment.translator.uid} />
</td>
<td>
{appointment.bringtranslator}
</td>
</tr>
</f:for>如果约会对象也有其他对象,则可以在迭代中再次迭代它们:
<f:for each="{appointments}" as="appointment">
{appointment.title}
<f:for each="{appointment.translators}" as="translator">
{translator.name}
</f:for>
</f:for>发布于 2018-01-15 09:13:32
我认为你在寻找这样的东西:
在这里您可以看到,您可以给别名一个数组,然后您可以循环通过。也许你能通过这个找到答案?如果你找到了正确的方法,请评论。
<f:alias map="{employees: {0: {first_name: 'Stefan', city: 'Lindlar'},1: {first_name: 'Petra', city: 'Lindlar'},2: {first_name: 'Sascha', city: 'Remscheid'},3: {first_name: 'Patrick', city: 'Bonn'},4: {first_name: 'Sven', city: 'Gummersbach'},5: {first_name: 'Andrea', city: 'Wuppertal'}}}">
<table cellpadding="5" cellspacing="0" border="2">
<f:groupedFor each="{employees}" as="employeesByCity" groupBy="city" groupKey="city">
<tr>
<th colspan="2">{city}</th>
</tr>
<f:for each="{employeesByCity}" as="employee">
<tr>
<td>{employee.first_name}</td>
<td>{employee.city}</td>
</tr>
</f:for>
</f:groupedFor>
</table>
</f:alias>https://stackoverflow.com/questions/31165827
复制相似问题