黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Laravel 控制器

Laravel 控制器

在MVC框架中,字母“C”代表Controller。它充當(dāng)視圖和模型之間的指揮流量。在本章中,您將了解Laravel中的控制器。

 

創(chuàng)建一個(gè)控制器

根據(jù)您使用的操作系統(tǒng)打開(kāi)命令提示符或終端,并使用Artisan CLI(命令行界面)鍵入以下命令創(chuàng)建控制器。

php artisan make:controller <controller-name> --plain</controller-name>

將 w替換為控制器的名稱。這將創(chuàng)建一個(gè)簡(jiǎn)單的構(gòu)造函數(shù),因?yàn)槲覀冋趥鬟f參數(shù) - 純粹 。如果你不想創(chuàng)建一個(gè)簡(jiǎn)單的構(gòu)造函數(shù),你可以簡(jiǎn)單地忽略這個(gè)參數(shù)。創(chuàng)建的構(gòu)造函數(shù)可以在 app / Http / Controllers中 看到。

您將看到已經(jīng)為您完成了一些基本編碼,您可以添加自定義編碼。創(chuàng)建的控制器可以通過(guò)下面的語(yǔ)法從routes.php中調(diào)用。

句法

Route::get(‘base URI’,’controller@method’);

第1步 - 執(zhí)行以下命令來(lái)創(chuàng)建 UserController 。

php artisan make:controller UserController --plain

第2步 - 成功執(zhí)行后,您將收到以下輸出。

第3步 - 您可以在 app / Http / Controller / UserController.php中 看到已創(chuàng)建的控制器,并且已經(jīng)為您編寫了一些基本代碼,您可以根據(jù)需要添加自己的代碼。

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserController extends Controller {
   //
}

 

控制器中間件

我們之前見(jiàn)過(guò)中間件,它也可以和控制器一起使用。中間件也可以分配給控制器的路由或控制器的構(gòu)造函數(shù)中。您可以使用中間件方法將中間件分配給控制器。注冊(cè)的中間件也可以限制為控制器的某些方法。

分配中間件到路由

Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

這里我們?cè)谂渲梦募酚芍袨閁serController分配auth中間件。

在Controller的構(gòu)造函數(shù)中分配中間件

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserController extends Controller {
   public function __construct(){
      $this--->middleware('auth');
   }
}

這里我們使用 UserController 構(gòu)造函數(shù)中的中間件方法來(lái)分配 auth 中間件。 **

第1步 - 將以下代碼行添加到 app / Http / routes.php 文件并保存。

routes.php文件

Route::get('/usercontroller/path',[
   'middleware' =--> 'First',
   'uses' => 'UserController@showPath'
]);

第2步 - 通過(guò)執(zhí)行以下代碼行來(lái)創(chuàng)建名為 FirstMiddleware 的中間件。

php artisan make:middleware FirstMiddleware

第3步 - 將以下代碼添加到 app / Http / Middleware 新創(chuàng)建的FirstMiddleware 的 句柄 方法中。 **

FirstMiddleware.php

 namespace App\Http\Middleware;
use Closure;

class FirstMiddleware {
   public function handle($request, Closure $next) {
      echo '
First Middleware';
      return $next($request);
   }
}

第4步 - 通過(guò)執(zhí)行以下命令創(chuàng)建一個(gè)名為 SecondMiddleware 的中間件。

php artisan make:middleware SecondMiddleware

第5步 - 在 app / Http / Middleware 新創(chuàng)建的SecondMiddleware的句柄方法中添加以下代碼。

SecondMiddleware.php

 namespace App\Http\Middleware;
use Closure;

class SecondMiddleware {
   public function handle($request, Closure $next){
      echo '
Second Middleware';
      return $next($request);
   }
}

第6步 - 通過(guò)執(zhí)行以下行創(chuàng)建一個(gè)名為 UserController 的控制器。

php artisan make:controller UserController --plain

第7步 - 成功執(zhí)行URL后,您將收到以下輸出 -

第8步 - 將以下代碼復(fù)制到 app / Http / UserController.php 文件。

應(yīng)用程序/ HTTP / UserController.php

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserController extends Controller {
   public function __construct(){
      $this--->middleware('Second');
   }
   public function showPath(Request $request){
      $uri = $request->path();
      echo '
URI: '.$uri;

      $url = $request->url();
      echo '
';

      echo 'URL: '.$url;
      $method = $request->method();
      echo '
';

      echo 'Method: '.$method;
   }
}

第9步 - 現(xiàn)在通過(guò)執(zhí)行以下命令啟動(dòng)php的內(nèi)部Web服務(wù)器,如果尚未執(zhí)行它。

php artisan serve

第10步 - 訪問(wèn)以下URL。

http://localhost:8000/usercontroller/path

第11步 - 輸出將如下圖所示。

![UserController2](/static/assets/tutorials/php/laravel/usercontroller2.jpg)

 

安穩(wěn)的資源控制器

通常在創(chuàng)建應(yīng)用程序時(shí),我們需要執(zhí)行 CRUD(創(chuàng)建,讀取,更新,刪除) 操作。Laravel使我們的工作變得簡(jiǎn)單。只需創(chuàng)建一個(gè)控制器,Laravel將自動(dòng)提供CRUD操作的所有方法。您還可以為routes.php文件中的所有方法注冊(cè)單個(gè)路由。

第1步 - 通過(guò)執(zhí)行以下命令創(chuàng)建一個(gè)名為 MyController 的控制器。

php artisan make:controller MyController

第2步 - 在下面添加代碼

app / Http / Controllers / MyController.php 文件。

應(yīng)用程序/ HTTP /控制器/ MyController.php

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function index(){
      echo 'index';
   }
   public function create(){
      echo 'create';
   }
   public function store(Request $request){
      echo 'store';
   }
   public function show($id){
      echo 'show';
   }
   public function edit($id){
      echo 'edit';
   }
   public function update(Request $request, $id){
      echo 'update';
   }
   public function destroy($id){
      echo 'destroy';
   }
} 

第3步 - 在 app / Http / routes.php 文件中添加以下代碼行。

應(yīng)用程序/ HTTP / routes.php文件

Route::resource('my','MyController');

第4步 - 我們現(xiàn)在通過(guò)向資源注冊(cè)一個(gè)控制器來(lái)注冊(cè)MyController的所有方法。 以下是資源控制器處理的操作表。

動(dòng)詞 路徑 行動(dòng) 路線名稱
得到 /我的 指數(shù) my.index
得到 /我的/創(chuàng)建 創(chuàng)建 my.create
POST /我的 商店 my.store
得到 /我的我的} 顯示 my.show
得到 /我的/ {}我/編輯 編輯 my.edit
PUT / PATCH /我的我的} 更新 my.update
刪除 /我的我的} 破壞 my.destroy

第5步 - 嘗試執(zhí)行下表中顯示的URL。

網(wǎng)址 描述 輸出圖像
HTTP://本地主機(jī):8000 /我的 執(zhí)行MyController.php的索引方法 指數(shù)
HTTP://本地主機(jī):8000 /我/創(chuàng)建 執(zhí)行MyController.php的創(chuàng)建方法 創(chuàng)建
HTTP://本地主機(jī):8000 /我/ 1 執(zhí)行MyController.php的show方法 顯示
HTTP://本地主機(jī):8000 /我的/ 1 /編輯 執(zhí)行MyController.php的編輯方法 編輯

 

隱式控制器

隱式控制器允許您定義單個(gè)路由來(lái)處理控制器中的每個(gè)操作。你可以使用 Route:controller 方法在route.php文件中定義它,如下所示。

Route::controller(‘base URI’,’<class-name-of-the-controller>’);</class-name-of-the-controller>

用您給控制器的類名替換。

控制器的方法名稱應(yīng)該以get或post之類的HTTP動(dòng)詞開(kāi)頭。如果你用get來(lái)啟動(dòng)它,它將只處理請(qǐng)求,如果它以post開(kāi)始,它將處理post請(qǐng)求。在HTTP動(dòng)詞之后,您可以為該方法指定任何名稱,但它應(yīng)該遵循URI的標(biāo)題大小寫版本。

步驟1 - 執(zhí)行以下命令來(lái)創(chuàng)建控制器。 我們保留了類名 ImplicitController 。你可以給你的任何名字給你的選擇。

php artisan make:controller ImplicitController --plain

第2步 - 成功執(zhí)行第1步后,您將收到以下輸出 -

第3步 - 將以下代碼復(fù)制到

app / Http / Controllers / ImplicitController.php 文件。

應(yīng)用程序/ HTTP /控制器/ ImplicitController.php

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ImplicitController extends Controller {
   /**
      * Responds to requests to GET /test
   */
   public function getIndex(){
      echo 'index method';
   }

   /**
      * Responds to requests to GET /test/show/1
   */
   public function getShow($id){
      echo 'show method';
   }

   /**
      * Responds to requests to GET /test/admin-profile
   */
   public function getAdminProfile(){
      echo 'admin profile method';
   }

   /**
      * Responds to requests to POST /test/profile
   */
   public function postProfile(){
      echo 'profile method';
   }
} 

第4步 - 將以 下行添加到 app / Http / routes.php 文件以將請(qǐng)求路由到指定的控制器。

應(yīng)用程序/ HTTP / routes.php文件

Route::controller('test','ImplicitController');

 

構(gòu)造函數(shù)注入

Laravel服務(wù)容器用于解析所有Laravel控制器。因此,您可以鍵入提示您的控制器在其構(gòu)造函數(shù)中可能需要的任何依賴項(xiàng)。依賴關(guān)系將自動(dòng)解析并注入到控制器實(shí)例中。

第1步 - 將以下代碼添加到 app / Http / routes.php 文件中。

應(yīng)用程序/ HTTP / routes.php文件

class MyClass{
   public $foo = 'bar';
}
Route::get('/myclass','ImplicitController@index');

第2步 - 將以下代碼添加到

app / Http / Controllers / ImplicitController.php 文件。

應(yīng)用程序/ HTTP /控制器/ ImplicitController.php

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ImplicitController extends Controller {
   private $myclass;

   public function __construct(\MyClass $myclass){
      $this--->myclass = $myclass;
   }
   public function index(){
      dd($this->myclass);
   }
}

第3步 - 訪問(wèn)以下URL以測(cè)試構(gòu)造器注入。

http://localhost:8000/myclass

第4步 - 輸出將如下圖所示。

 

方法注射

除了構(gòu)造函數(shù)注入之外,您還可以鍵入 - 提示控制器操作方法的依賴關(guān)系。

第1步 - 將以下代碼添加到 app / Http / routes.php 文件中。

應(yīng)用程序/ HTTP / routes.php文件

class MyClass{
   public $foo = 'bar';
}
Route::get('/myclass','ImplicitController@index');

第2步 - 將以下代碼添加到

app / Http / Controllers / ImplicitController.php 文件。

應(yīng)用程序/ HTTP /控制器/ ImplicitController.php

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ImplicitController extends Controller {
   public function index(\MyClass $myclass){
      dd($myclass);
   }
} 

<strong>第3步</strong> - 訪問(wèn)以下URL以測(cè)試構(gòu)造器注入。

http://localhost:8000/myclass

它會(huì)產(chǎn)生以下輸出 -

<img src="/Public/core/edit/php/../attached/20231217144441_69567.jpg" alt="" border="0" />

下一節(jié):Laravel 請(qǐng)求

Laravel 教程

相關(guān)文章