Как указать модель действия по умолчанию - PullRequest
0 голосов
/ 25 сентября 2011

Я хочу сделать модель действия текущим пользователем, если она не указана. Как это сделать?

Например, у меня есть действие профиля в пользовательском контроллере. Если URL похож на / user / profile / 3, он покажет профиль пользователя с идентификатором 3, а если URL похож на / user / profile, он покажет текущего пользователя.

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Как насчет этого:

public function actionProfile($id=null)
{
    $id=($id===null?Yii::app()->user->id:$id);
    $model=$this->loadModel($id);
    ...
}
0 голосов
/ 25 сентября 2011

Если я понимаю вопрос, вы говорите о областях по умолчанию .

В модели:

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

Тогда любой запрос в вашем контроллере будет использовать это как условие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...