控制器是 MVC 模式中的一部分, 是繼承yiibaseController類的對象,負責處理請求和生成響應。
具體來說,控制器從應用主體 接管控制后會分析請求數據并傳送到模型, 傳送模型結果到視圖,最后生成輸出響應信息。
動作? ? ? ? ? ? ? ? ? (推薦學習:yii框架)
控制器由 操作 組成,它是執行終端用戶請求的最基礎的單元, 一個控制器可有一個或多個操作。
如下示例顯示包含兩個動作view and create 的控制器post:
Namespace?appcontrollers; use?Yii; use?appmodelsPost; use?yiiwebController; use?yiiwebNotFoundHttpException; class?PostController?extends?Controller { ????public?function?actionView($id) ????{ ????????$model?=?Post::findOne($id); ????????if?($model?===?null)?{ ????????????throw?new?NotFoundHttpException; ????????} ????????return?$this->render('view',?[ ????????????'model'?=>?$model, ????????]); ????} ????public?function?actionCreate() ????{ ????????$model?=?new?Post; ????????if?($model->load(Yii::$app->request->post())?&&?$model->save())?{ ????????????return?$this->redirect(['view',?'id'?=>?$model->id]); ????????}?else?{ ????????????return?$this->render('create',?[ ????????????????'model'?=>?$model, ????????????]); ????????} ????} }
在操作?view?(定義為?actionView()?方法)中, 代碼首先根據請求模型ID加載?模型, 如果加載成功,會渲染名稱為view的視圖并顯示,否則會拋出一個異常。
在操作?create?(定義為?actionCreate()?方法)中, 代碼相似. 先將請求數據填入模型, 然后保存模型,如果兩者都成功,會跳轉到ID為新創建的模型的view操作, 否則顯示提供用戶輸入的create視圖。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END