Во-первых, вам нужно включить пользователя в фильтр. У вас есть два варианта:
Передайте user_id в качестве опции при создании экземпляра формы внутри действия:
public function executeList(sfWebRequest $request)
{
$user_id = $this->getUser()->getUserId();
$filter = new ModelFormFilter(array(), array('user_id' => $user_id));
...
Получить идентификатор пользователя из контекста внутри формы:
sfContext::getInstance()->getUser()->getUserId();
Я предпочитаю первый метод, потому что он чище и меньше WTFy.
Когда у вас есть идентификатор пользователя, переопределите doBuildQuery
, чтобы исключить текущий идентификатор пользователя внутри вашего FormFilter:
protected function doBuildQuery(array $values)
{
$query = parent::doBuildQuery($values);
$user_id = $this->getOption('user_id'); //or off the context here
if ($user_id)
{
$query->addWhere('r.user_id != ?', $user_id);
}
return $query;
}