Yii来自DB的4个表的actionIndex()

时间:2013-12-23 22:02:55

标签: php mysql sql activerecord yii

我的数据库上有4个表,每个表包含(id,name)列。

模特:

表1 = id,name; 表2 = id,name;

我想在GeneralController中为每个表做1个actionIndex()和1个视图文件,但我不知道它是怎么做的。

public function actionIndex() {
     $model = Table1::model()->findAll();
     $this->render('index', array('model'=>$model);
}

也许在actionIndex($ id)中为定义表和调用函数发送params

if($id==1) {}

但是也许我会有10-15个表(id,列)

3 个答案:

答案 0 :(得分:1)

您可以将多个变量传递给视图:

public function actionIndex() {
    $model = Table1::model()->findAll();
    $model2 = Table2::model()->findAll();
    $this->render('index', array('model'=>$model,'model2'=>$model2);
}

答案 1 :(得分:0)

在这种情况下你应该这样做

public function actionIndex($name)
 {
$name=ucfirst(strtolower(rtrim(trim(strip_tags($name)))));
$allTables=array('Table1','Table2','Table3');
if(in_array($name,$allTables))
{
$model = $name::model()->findAll();
$this->render('index', array('model'=>$model);
}
else
{
//render any default view incase if the $name does not belong to any table
}
}

答案 2 :(得分:0)

你可以按照你想要的方式包含模型。

public function actionIndex() {
    $model1 = Table1::model()->findAll();
    $model2 = Table2::model()->findAll();
    $model3 = Table3::model()->findAll();

    $params = array('model1'=>$model1,'model2'=>$model2, 'model3'=>$model3);
    $this->render('index', $params);
}