Как получить значение user_id в плагине sfDoctrineGuard?

Я работаю над одним модулем на основе sfGuard, и мне нужно разрешить пользователям редактировать или удалять записи. Вот как я получаю пользователей:

$id_empresa = $this->getUser()->getGuardUser()->getSfGuardUserProfile()->getIdempresa();
$this->users = Doctrine_Core::getTable('sfGuardUser')->createQuery('u')->leftJoin('u.SfGuardUserProfile p')->where('idempresa = ?', $id_empresa)->execute();

Но потом, пока я повторяю, я не знаю, как получить доступ к user_id значение. Я проверил BasesfGuardUser но никакого метода для получения идентификатора не существует, совет или помощь?

Добавлен код для представления Это код для итерации:

<?php foreach ($users as $user): ?>
    <tr>
       <td><?php echo $user->getFirstName() ?></td>
       <td><?php echo $user->getLastName() ?></td>
       <td><?php echo $user->getEmailAddress() ?></td>
       <td><?php echo $user->getUsername() ?></td>
       <td><?php echo $user->getIsActive() ?></td>
       <td>
          <a href="<?php echo url_for('guard/users/' . $user->get('id') . '/edit') ?>" class="btn btn-success btn-mini">Editar</a>
          <a href="<?php echo url_for('guard/users/' . $user->get('id')) ?>" class="btn btn-danger btn-mini">Eliminar</a>
       </td>
    </tr>
<?php endforeach; ?>

1 ответ

Решение

Проблема заключается в 'guard/users/' . $user->get('id') . '/edit' участие в url_for, Может это потому что usuarios/edit/1 не является допустимым параметром для url_for так что разбирается как module/action и /1 часть игнорируется, но я не уверен.

IIRC url_for на самом деле имеет 4 действительных формы:

  • url_for('module/action', array('param1' => 'value1'), true /* absolute */)
  • url_for('@route_name?param1=value1', true /* absolute */)
  • url_for('route_name', array('param1' => 'value1'), true /* absolute */)
  • это только для маршрутов объекта: url_for('route_name', $object, true /* absolute */) или же url_for('route_name', array('sf_subject' => $object, 'extra_param' => 'value'), true /* absolute */)

Если у вас есть маршрут объекта (например, sfDoctrineRoute) вы должны использовать последний, если у вас есть необъектный маршрут с параметрами, вы должны использовать третий и если у вас есть маршрут без параметров, вы должны использовать второй.

Другие вопросы по тегам