2012-05-10 1 views
1


Я работаю над приложением Yii, которое имеет только один вид - «панель», мне нужно делать всю активность приложения на этом одном интерфейсе. например, показать все данные пользователя, учетную запись, историю, статус с творогом.Как виджетировать один вид, используя несколько моделей в Yii?

--In Controller-- 
class DashboardController 
{ 
    public function actionDashboard() 
    { 
     $model = new MyDashboard; 
     if(isset($_POST['MyDashboard'])) 
     { 
      $this->model->save(); 
     } 
     $this->render('dashboard',array('model'=>$model)); 
    } 
} 


-- In Dashboard View -- 
// userd-details 
$this->widget('application.components.widgets.addGruopWidget.userdetails'); 

//account 
$this->widget('application.components.widgets.addGruopWidget.useraccount'); 

//user status 
$this->widget('application.components.widgets.addGruopWidget.userstatus'); 

//user history 
$this->widget('application.components.widgets.addGruopWidget.userhistory'); 

Итак, как определить все творогом активности для пользователя на этом одном интерфейсе «Dashboard» с помощью DashboardController. PLZ предложить решение, если это возможно. Благодаря !!!

+0

Написанные там могут уже работать, но вам действительно не нужно создавать виджеты, если вы показываете их только в одном месте. – marcovtwout

+0

yep, его одно место, но некоторые из творога не работают должным образом, потому что мы отправляем несколько данных из одного вида в несколько моделей. Может произойти неправильное или синтаксическое нарушение. – Frank

ответ

0
public function actionDashboard($action=null){ 

    if(!is_null($action) && strlen($action)>0){ 
    $method = "run".ucfirst($action); 
    if(method_exists($this,$method)){ 
     $this->$method(); // if $action is 'actionName' then $this->runActionName(); 
     Yii::app()->end(); 
    } 
    } 
} 


... 
} 


protected function runActionName(){ 
    /* dp something */ 
}