public function executePolyModuleForm(sfWebRequest $request)
 {
     $route = $request->getParameter('r', false);
     if ($request->isMethod('post')) {
         $perfil_acceso = $request->getParameter('perfil_acceso');
         if (!$route || !$perfil_acceso) {
             return $this->renderText('ERROR');
         }
         $conn = sfContext::getInstance()->getDatabaseManager()->getDatabase('doctrine')->getDoctrineConnection();
         try {
             $conn->beginTransaction();
             ModulesPolymorphismTable::getInstance()->findBySource($route)->delete();
             foreach ($perfil_acceso as $sf_guard_permission_id => $form) {
                 $mp = new ModulesPolymorphism();
                 $mp->setSfGuardPermissionId($sf_guard_permission_id);
                 $mp->setSource($route);
                 $mp->setDestination($form['destination']);
                 $mp->setUseDestinationTitle(isset($form['use_destination_title']));
                 $mp->save();
             }
             $conn->commit();
             return $this->renderText('OK');
         } catch (Doctrine_Exception $e) {
             $conn->rollback();
             return $this->renderText('ERROR');
         }
     }
     $polymorphisms = AdvancedLayout::getModules('', true, true);
     $modules_permissions = AdvancedLayout::getModulesPermissions();
     if (!count($polymorphisms) || !$route || !isset($polymorphisms[$route])) {
         die;
     }
     $data = array();
     $data['module'] = $polymorphisms[$route];
     $data['permissions'] = AdvancedLayout::getModulesPermissions();
     return $this->renderPartial('form_polymodule', $data);
 }
<?php

$modules_permissions = AdvancedLayout::getModulesPermissions();
$modules_poly = AdvancedLayout::getModulesPolymorphism();
$polymorphisms = $sf_data->getRaw('polymorphisms');
$modules = AdvancedLayout::getModules('', true);
?>
<table class="table table-bordered">
  <thead>
    <tr>
      <th>Módulo</th>
      <th>Perfil de Acceso</th>
      <th>Actúa como</th>
      <th></th>
    </tr>
  </thead>
  <tbody> 
<?php 
foreach ($polymorphisms as $mo) {
    ?>
    <tr>
      <td rowspan="<?php 
    echo max(1, count($modules_permissions[$mo['route']]));
    ?>
"><i class="fa fa-fw fa-<?php 
    echo $mo['icon'];
    ?>
"></i> <?php 
    echo $mo['title'];
    ?>
</td>