Laravel中的控制器

Laravel中的控制器

????為了替代在路由文件中以閉包形式定義的所有的請(qǐng)求處理邏輯,如果想要使用控制類來(lái)組織這些行為,控制器能將相關(guān)的請(qǐng)求處理邏輯組成一個(gè)單獨(dú)的類,控制器被存放在 app/http/Controllers 目錄中。

一、簡(jiǎn)單的創(chuàng)建一個(gè)控制器

//使用php?artisan?命令,創(chuàng)建好后會(huì)自動(dòng)加載命名空間,自動(dòng)基礎(chǔ)控制器基類 php?artisan?make:controller?[控制器路徑/]控制器名稱

二、控制器的分類

????1.基礎(chǔ)控制器

//app/http/controller/定義UserController namespace?AppHttpControllers;  use?AppHttpControllersController; use?AppModelsUser;  class?UserController?extends?Controller { ????/** ?????*?顯示指定用戶的簡(jiǎn)介 ?????* ?????*?@param??int??$id ?????*?@return?IlluminateViewView ?????*/ ????public?function?show($id) ????{ ????????....... ????} }

在路由中使用:

Route::get('user/{id}',?[UserController::class,?'show']);

????2.單行為控制器

//使用命令行方式創(chuàng)建單行為控制器 php?artisan?make:controller	GetName?--invokable
namespace?AppHttpControllers;  use?AppHttpControllersController; use?AppModelsUser;  class?GetName?extends?Controller { ????/** ?????*?顯示指定用戶的簡(jiǎn)介 ?????* ?????*?@param??int??$id ?????*?@return?IlluminateViewView ?????*/ ????public?function?__invoke($id) ????{ ????????......... ????} }

在路由中使用:

Route::get('user/{id}',?GetName::class)

????3.資源控制器

//使用命令行方式創(chuàng)建資源控制器 php?artisan?make:controller?UserController?--reosurce
<?php namespace AppHttpControllersAdmin;  use AppHttpControllersController; use AppModelsCategory; use AppModelsGood; use AppTransformersGoodTransformer; use IlluminateHttpRequest;  class GoodController extends Controller {     /**      * Display a listing of the resource.      *      * @return IlluminateHttpResponse      */     public function index(Request $request)     {      }      /**      * Store a newly created resource in storage.      *      * @param  IlluminateHttpRequest  $request      * @return IlluminateHttpResponse      */     public function store(Request $request)     {      }      /**      * Display the specified resource.      *      * @param  int  $id      * @return IlluminateHttpResponse      */     public function show($id)     {      }      /**      * Update the specified resource in storage.      *      * @param  IlluminateHttpRequest  $request      * @param  int  $id      * @return IlluminateHttpResponse      */     public function update(Request $request, $id)     {         //     }      /**      * Remove the specified resource from storage.      *      * @param  int  $id      * @return IlluminateHttpResponse      */     public function destroy($id)     {         //     } }

在路由中使用:

//第二參數(shù)為選填,例如當(dāng)不需要destory()方法時(shí),即可填入 Route::resource('goods',AppHttpControllersAdminGoodController::class,[ ??????'except'?=&gt;?'destroy' ]); Route::resource('goods',AppHttpControllersAdminGoodController::class,[ ??????'only'??=&gt;?['index','show','store','update'] ]);

? ? 相關(guān)視頻教程推薦:Laravel?視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享