【问题标题】:How To wigetized a single view using several models in Yii?如何在 Yii 中使用多个模型构建单个视图?
【发布时间】:2012-05-10 06:33:38
【问题描述】:


我正在研究 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');

那么如何使用 DashboardController 在这个单一的“仪表板”界面上为用户定义所有凝乳活动。如果可能,请提出解决方案。谢谢!!!

【问题讨论】:

  • 你在那里写的东西已经可以工作了,但如果你只在一个地方显示它们,你真的不需要创建小部件。
  • 是的,它是一个地方,但是一些凝乳设施无法正常工作,因为我们将多个数据从单个视图发布到多个模型。可能会出错或语法违规。

标签: widget yii yii-components yii-inheritance


【解决方案1】:
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  */
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多