2016-03-07 2 views
0

Я действительно новичок в Symfony 1. Я знаю, что она устарела и эта поддержка закончилась для этой версии. Но один из проектов в компании, где я прошел стажировку, по-прежнему работает на Symfony 1.4.Symfony 1 - Как сделать ссылку от foreach

У меня есть петля 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; ?> 

приведенная выше таблица вывода кода;

Output Table

Мой вопрос, как я могу сделать поле в таблице ссылку на эту конкретное описание. Я хочу, чтобы значение Parent Service в таблице стало ссылкой на это конкретное значение.

Я подумал о том, если, например;

<?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; ?> 

Но моему знанию все еще не хватает многого, чтобы понять это. Я по-настоящему ценю какую-то помощь, пожалуйста?

ответ

0

Если вы получили маршрут к странице деталей я хотел бы попробовать что-то вроде этого, используя 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> 
+0

Спасибо, я вижу, что я иду в правильном направлении. (Я надеялся, что) –

0

Вы должны использовать.

echo link_to ($name, "action/module?id=". $sf_params->get("id") . "&params2=2")) 

Причина заключается в его читаемости и простоте.

Смежные вопросы