먼저 사용자를 필터로 가져와야합니다. 양식을 인스턴스화 할 때
액션 내부 옵션으로의 USER_ID를 전달합니다 :
public function executeList(sfWebRequest $request)
{
$user_id = $this->getUser()->getUserId();
$filter = new ModelFormFilter(array(), array('user_id' => $user_id));
...
양식의 내부의 상황에서 사용자 ID를 가져옵니다 :
sfContext::getInstance()->getUser()->getUserId();
두 가지 옵션이 있습니다
전 청소 방법이 더 좋으며 WTFy가 적기 때문에 이전 방법을 선호합니다. 당신은 사용자 ID가 있으면
, 당신의 FormFilter의 내부에 현재 사용자 ID를 제외 doBuildQuery
를 오버라이드 (override) :
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;
}