如果没有指定,我想让一个动作的模型成为当前用户。怎么做?
例如,我在用户控制器中有一个配置文件操作。如果网址类似于/ user / profile / 3,它将显示id为3的用户的个人资料,如果网址为/ user / profile,则会显示当前用户的。
public function actionProfile($id){
$model=$this->loadModel($id);
$this->render('profile',array(
'model'=>$model
));
}
答案 0 :(得分: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 ();
}
}
然后,控制器中的任何查询都将使用该条件作为条件。
答案 1 :(得分:0)
这样的事情怎么样:
public function actionProfile($id=null)
{
$id=($id===null?Yii::app()->user->id:$id);
$model=$this->loadModel($id);
...
}