0
我的計劃中有幾個字典表。每個人在應用程序中都有一個ActiveRecord模型。我需要對他們進行簡單的操作(CRUD)。所以,按照常見的方式,我必須爲每個執行每個操作的模型創建單獨的控制器。我甚至可以使用GII進行代碼生成。Yii2使用單個控制器爲多個相似的模型
但是有可能使用單個控制器,比如DictionaryController來操作不同的模型嗎?可能是模型名稱在構造函數中作爲參數傳遞。
我的計劃中有幾個字典表。每個人在應用程序中都有一個ActiveRecord模型。我需要對他們進行簡單的操作(CRUD)。所以,按照常見的方式,我必須爲每個執行每個操作的模型創建單獨的控制器。我甚至可以使用GII進行代碼生成。Yii2使用單個控制器爲多個相似的模型
但是有可能使用單個控制器,比如DictionaryController來操作不同的模型嗎?可能是模型名稱在構造函數中作爲參數傳遞。
這是一個非常簡單的例子..你可以通過很多不同的方式來完成這個問題,如果你使用參數..或者你可以選擇一個值來讓你選擇 。發表/得到你的電話的價值,你可以
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,
]);
}
}
是的。謝謝。 – AvoiDFaTE
是的..但問題是你如何通過管理定義模型...你認爲如何傳遞一個標識模型的值? ..更好地解釋你的需要 – scaisEdge