我的数据库上有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,列)
答案 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);
}