2017-07-14 78 views
0

我的计划中有几个字典表。每个人在应用程序中都有一个ActiveRecord模型。我需要对他们进行简单的操作(CRUD)。所以,按照常见的方式,我必须为每个执行每个操作的模型创建单独的控制器。我甚至可以使用GII进行代码生成。Yii2使用单个控制器为多个相似的模型

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

+0

是的..但问题是你如何通过管理定义模型...你认为如何传递一个标识模型的值? ..更好地解释你的需要 – scaisEdge

回答

0

这是一个非常简单的例子..你可以通过很多不同的方式来完成这个问题,如果你使用参数..或者你可以选择一个值来让你选择 。发表/得到你的电话的价值,你可以

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, 
     ]); 
    } 


    } 
+0

是的。谢谢。 – AvoiDFaTE

相关问题