2011-09-25 5 views
-1

조치의 모델을 지정하지 않은 경우 현재 사용자로 지정하려고합니다. 그렇게하는 방법?조치의 기본 모델을 지정하는 방법

예를 들어 사용자 컨트롤러에 프로필 작업이 있습니다. url이/user/profile/3과 같으면 ID가 3 인 사용자의 프로필을 표시하고 url이/user/profile과 같은 경우 현재 사용자의 프로필을 표시합니다.

public function actionProfile($id){ 
        $model=$this->loadModel($id); 
        $this->render('profile',array(
         'model'=>$model 
       )); 
     } 
+0

,'$ 아이디 = YII :: 응용 프로그램을 설정() -> 사용자 -> id'? 이게 네가 말하는거야? 당신이 찾고있는 것이 완전히 명확하지 않습니다. – ldg

+0

@ldg $ id는이 함수의 매개 변수로 지정하지 않으면 치명적인 오류입니다. – LotusH

답변

0

: $ ID가 비어있는 경우 함수에서

public function actionProfile($id=null) 
{ 
    $id=($id===null?Yii::app()->user->id:$id); 
    $model=$this->loadModel($id); 
    ... 
} 
0

질문을 이해하면 default scopes입니다. 모델에서

:
public function defaultScope() 
{ 
    if (Yii::app()->user->id) 
    { 
     return array (
      'condition' => 'user_id=' . Yii::app()->user->id, 
     ); 
    } 
    else 
    { 
     // or whatever 
     return array(); 
    } 
} 

그런 다음 컨트롤러의 모든 쿼리는 조건으로 그 사용합니다. 이런 일에 대해 어떻게

관련 문제