Yii2使用单个控制器用于多个相似模型

时间:2017-07-14 07:59:15

标签: php yii2

我的计划中有很少的字典表。每个人在应用程序中都有一个ActiveRecord模型。我需要对它们进行简单的操作(CRUD)。因此,通常我必须为每个模型创建单独的控制器,其中每个模型都实现了。我甚至可以使用GII进行代码生成。

但是可以使用单个控制器,比如DictionaryController,来操作不同的模型吗?可以是在构造函数中作为参数传递的模型名称。

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的例子..你可以用很多不同的方式做问题是有一个值让你选择要处理的模型 如果你使用param ..或。发布/获取您可以打电话的价值

public function actionCreate($the_dict)
{
   switch($the_dict) {
      case 'DICT1':
         $model = new Dict1();
         break;
      case 'DICT2' :
         $model = new Dict1();
         break;

     if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
            'dict' => $the_dict,
        ]);
    }


  }