Symfony 1 - 如何从 foreach 中创建 link
Symfony 1 - How to make a link from a foreach
我真的是 Symfony 1 的新手。我知道它很旧,而且对该版本的支持已经结束。但是我实习的公司的一个项目仍然在 symfony 1.4 上运行。
我有一个 foreach 循环;
<?php foreach ($configuration->getFormFields($form, 'show') as $fieldset => $fields): ?>
<?php //include_partial('service/form_fieldset', array('service' => $service, 'form' => $form, 'fields' => $fields, 'fieldset' => $fieldset)) ?>
<table id="sf_fieldset_<?php echo preg_replace('/[^a-z0-9_]/', '_', strtolower($fieldset)) ?>" cellspacing="0" cellpadding="0" class="sf_admin_st">
<tr>
<th>Property</th>
<th>Value</th>
</tr>
<?php
$i = 0;
foreach ($fields as $name => $field):
?>
<?php $i++;
$class = ($i % 2 == 0) ? 'even' : 'odd';
?>
<?php $attributes = $field->getConfig('attributes', array()); ?>
<?php if ($field->isPartial()): ?>
<?php include_partial('service/' . $name, array('service' => $service, 'form' => $form, 'attributes' => $attributes instanceof sfOutputEscaper ? $attributes->getRawValue() : $attributes)) ?>
<?php elseif ($field->isComponent()): ?>
<?php include_component('service', $name, array('service' => $service, 'form' => $form, 'attributes' => $attributes instanceof sfOutputEscaper ? $attributes->getRawValue() : $attributes)) ?>
<?php else: ?>
<tr class="<?php echo $class ?>">
<td><?php echo $field->getConfig('label') ? $field->getConfig('label') : $field->getName() ?>:</td>
<td><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>
<?php endforeach; ?>
上面提到的代码输出table如下;
我的问题是,如何让 table 中的字段成为 link 的特定描述。我希望 table 中的 Parent Service
值成为该特定值的 link。
我想到了一个if,像这样;
<?php if ($field->getConfig('label') == "parent_service_description"): ?>
<td><a href="#"><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></a></td>
<?php else: ?>
<td><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></td>
<?php endif; ?>
但是我的知识还很匮乏,无法解决这个问题。非常感谢您的帮助,好吗?
如果您有通往详细信息页面的路线,我会尝试使用 url_for 和给定的 $parentId:
<?php if ($field->getConfig('label') == "parent_service_description"): ?>
<td>
<a href="<?php echo url_for('@show_details?id=' . $parentId) ?>">
<?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?>
</a>
</td>
你应该用。
echo link_to ($name, "action/module?id=". $sf_params->get("id") . "¶ms2=2") )
背后的原因是它的可读性和简单性。
我真的是 Symfony 1 的新手。我知道它很旧,而且对该版本的支持已经结束。但是我实习的公司的一个项目仍然在 symfony 1.4 上运行。
我有一个 foreach 循环;
<?php foreach ($configuration->getFormFields($form, 'show') as $fieldset => $fields): ?>
<?php //include_partial('service/form_fieldset', array('service' => $service, 'form' => $form, 'fields' => $fields, 'fieldset' => $fieldset)) ?>
<table id="sf_fieldset_<?php echo preg_replace('/[^a-z0-9_]/', '_', strtolower($fieldset)) ?>" cellspacing="0" cellpadding="0" class="sf_admin_st">
<tr>
<th>Property</th>
<th>Value</th>
</tr>
<?php
$i = 0;
foreach ($fields as $name => $field):
?>
<?php $i++;
$class = ($i % 2 == 0) ? 'even' : 'odd';
?>
<?php $attributes = $field->getConfig('attributes', array()); ?>
<?php if ($field->isPartial()): ?>
<?php include_partial('service/' . $name, array('service' => $service, 'form' => $form, 'attributes' => $attributes instanceof sfOutputEscaper ? $attributes->getRawValue() : $attributes)) ?>
<?php elseif ($field->isComponent()): ?>
<?php include_component('service', $name, array('service' => $service, 'form' => $form, 'attributes' => $attributes instanceof sfOutputEscaper ? $attributes->getRawValue() : $attributes)) ?>
<?php else: ?>
<tr class="<?php echo $class ?>">
<td><?php echo $field->getConfig('label') ? $field->getConfig('label') : $field->getName() ?>:</td>
<td><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>
<?php endforeach; ?>
上面提到的代码输出table如下;
我的问题是,如何让 table 中的字段成为 link 的特定描述。我希望 table 中的 Parent Service
值成为该特定值的 link。
我想到了一个if,像这样;
<?php if ($field->getConfig('label') == "parent_service_description"): ?>
<td><a href="#"><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></a></td>
<?php else: ?>
<td><?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?></td>
<?php endif; ?>
但是我的知识还很匮乏,无法解决这个问题。非常感谢您的帮助,好吗?
如果您有通往详细信息页面的路线,我会尝试使用 url_for 和给定的 $parentId:
<?php if ($field->getConfig('label') == "parent_service_description"): ?>
<td>
<a href="<?php echo url_for('@show_details?id=' . $parentId) ?>">
<?php echo $form->getObject()->get($name) ? $form->getObject()->get($name) : "-" ?>
</a>
</td>
你应该用。
echo link_to ($name, "action/module?id=". $sf_params->get("id") . "¶ms2=2") )
背后的原因是它的可读性和简单性。