我如何在sfDoctrineGuard插件中获取user_id值?

时间:2013-06-17 17:28:41

标签: symfony1 symfony-1.4 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,但没有找到ID存在的方法,任何建议或帮助?

添加了视图的代码 这是迭代的代码:

<?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 个答案:

答案 0 :(得分:2)

问题是'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)你应该使用最后一个,如果你有一个带有参数的非对象路由你应该使用第三个,如果你有一个没有参数的路由你应该使用第二个。