บทความ

Laravel: ตัวควบคุม laravel คืออะไร

ในเฟรมเวิร์ก MVC ตัวอักษร “C” ย่อมาจาก Controllers และในบทความนี้เราจะมาดูวิธีใช้ Controllers ใน Laravel ทำหน้าที่เป็นทราฟฟิกโดยตรงระหว่างมุมมองและโมเดล ในบทความนี้ เราจะดูวิธีสร้างและตั้งค่าคอนโทรลเลอร์ใน Laravel

Creare un controller ใน laravel

เพื่อสร้าง controllerเราจะต้องเปิดพร้อมรับคำสั่งหรือเทอร์มินัลตามระบบปฏิบัติการที่เราใช้และพิมพ์คำสั่งต่อไปนี้เพื่อสร้างตัวควบคุมโดยใช้ Artisan CLI (Command Line Interface).

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

แทนที่ <controller-name> ด้วยชื่อของคุณ controller. สิ่งนี้จะสร้าง controller. ดิ controller สร้างขึ้นสามารถดูได้ใน app/Http/Controllers .

คุณจะเห็นว่ามีการเขียนโค้ดพื้นฐานบางอย่างให้คุณแล้ว และคุณสามารถเพิ่มโค้ดที่คุณกำหนดเองได้ เดอะ controller สร้างสามารถเรียกใช้จาก web.php ด้วยไวยากรณ์ต่อไปนี้

วากยสัมพันธ์
Route::get(‘base URI’,’controller@method’);
ตัวอย่าง

1 : เรียกใช้คำสั่งต่อไปนี้เพื่อสร้าง MyController

php artisan make:controller MyController

2 – หลังจากดำเนินการสำเร็จ คุณจะได้ผลลัพธ์ดังต่อไปนี้

3 – เราจะพบคอนโทรลเลอร์ที่สร้างขึ้นใน app/Http/Controller/MyController.php ด้วยโค้ดพื้นฐานที่เขียนไว้แล้วและเราสามารถแก้ไขได้ตามต้องการ

มิดเดิลแวร์คอนโทรลเลอร์

เราได้เห็นแล้ว middleware และเรายังสามารถใช้กับ controller. ดิ middleware นอกจากนี้ยังสามารถกำหนดให้กับเส้นทางตัวควบคุมหรือภายในตัวสร้างตัวควบคุม คุณสามารถใช้วิธี middleware เพื่อกำหนดให้ middleware al controller. ดิ middleware การลงทะเบียนยังสามารถจำกัดวิธีการบางอย่างของ controller.

การกำหนดตัวกลางให้กับเส้นทาง
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

ที่นี่เรากำลังกำหนดมิดเดิลแวร์การรับรองความถูกต้องให้กับ UserController ในเส้นทางโปรไฟล์

การกำหนดมิดเดิลแวร์ภายในตัวสร้างคอนโทรลเลอร์
<?php

namespace App\Http\Controllers;

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

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

ที่นี่เรากำลังกำหนดให้ middleware ของการรับรองความถูกต้อง โดยใช้วิธีการ middleware ในตัวสร้าง ตัวควบคุมของฉัน .

โปรดทราบว่า $this->middleware() มันได้ผล เท่านั้น หากคุณกำหนดให้ในตัวสร้าง ถ้าเราโทร $this->middleware() จากวิธีการควบคุมเฉพาะ มันจะไม่ส่งข้อผิดพลาดใด ๆ แต่มิดเดิลแวร์จะไม่ทำงานจริง

ตัวเลือกนี้ใช้ได้ แต่ ส่วนตัว ฉันชอบที่จะใส่มิดเดิลแวร์ทั้งหมดลงใน routesเพราะมันชัดเจนกว่าที่จะค้นหาทั้งหมด middleware.

ตัวอย่าง

1 – มาเพิ่มโค้ดบรรทัดต่อไปนี้ในไฟล์กันเถอะ เส้นทาง/web.php และเราบันทึก

<?php
Route::get('/mycontroller/path',[
   'middleware' => 'First',
   'uses' => 'MyController@showPath'
]);

2 – มาสร้าง middleware เรียกว่า FirstMiddleware โดยเรียกใช้โค้ดบรรทัดต่อไปนี้

php artisan make:middleware FirstMiddleware

3 : เพิ่มรหัสต่อไปนี้ในวิธีการ จัดการ เดล FirstMiddleware เพิ่งสร้างใน แอพ/Http/มิดเดิลแวร์ .

<?php

namespace App\Http\Middleware;
use Closure;

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

4 – มาสร้าง middleware เรียกว่า มิดเดิลแวร์ตัวที่สอง โดยเรียกใช้คำสั่งต่อไปนี้

php artisan make:middleware SecondMiddleware

5 : ขอเพิ่มรหัสต่อไปนี้ในวิธีการจัดการของ SecondMiddleware เพิ่งสร้างใน แอพ/Http/มิดเดิลแวร์ .

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : มาสร้าง controller เรียกว่า ตัวควบคุมของฉัน โดยรันบรรทัดต่อไปนี้

php artisan make:controller MyController

7 – หลังจาก url ทำงานสำเร็จ คุณจะได้ผลลัพธ์ต่อไปนี้ –

8 – คัดลอกโค้ดต่อไปนี้ลงในไฟล์ app/Http/MyController.php.

<?php

namespace App\Http\Controllers;

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

class MyController extends Controller {
   public function __construct() {
      $this->middleware('Second');
   }
   public function showPath(Request $request) {
      $uri = $request->path();
      echo '<br>URI: '.$uri;
      
      $url = $request->url();
      echo '<br>';
      
      echo 'URL: '.$url;
      $method = $request->method();
      echo '<br>';
      
      echo 'Method: '.$method;
   }
}

9 – ตอนนี้เรามาเริ่มเว็บเซิร์ฟเวอร์ภายในของ php โดยเรียกใช้คำสั่งต่อไปนี้ หากคุณยังไม่ได้ดำเนินการ

php artisan serve

10 – ไปที่ URL ต่อไปนี้

http://localhost:8000/mycontroller/path

11 – ผลลัพธ์จะปรากฏดังภาพต่อไปนี้

มิดเดิลแวร์ทั้งสองเกี่ยวข้องกัน แต่มีเพียงอันเดียว

Controller di restful resource

บ่อยครั้งเมื่อสร้างแอปพลิเคชัน คุณต้องทำบางสิ่ง CRUD (Create, Read, Update, Delete)Laravel ช่วยให้งานนี้ง่ายขึ้น เพียงแค่สร้าง controller และ Laravel จะให้วิธีดำเนินการทั้งหมดโดยอัตโนมัติ CRUD. เรายังสามารถบันทึกพาธเดียวไปยังทุกเมธอดในไฟล์ route.php.

ตัวอย่าง

1 : สร้างตัวควบคุมที่เรียกว่า MyController โดยเรียกใช้คำสั่งต่อไปนี้

php artisan make:controller MyController

2 : เพิ่มรหัสต่อไปนี้ใน app/Http/Controllers/MyController.php

<?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 – เพิ่มบรรทัดของรหัสต่อไปนี้ในไฟล์ routes/web.php .

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

4 – ขณะนี้เรากำลังลงทะเบียนวิธีการทั้งหมดของ MyController โดยการลงทะเบียนคอนโทรลเลอร์ด้วยทรัพยากร ด้านล่างนี้คือตารางการดำเนินการที่จัดการโดยตัวควบคุมทรัพยากร

คำกริยาเส้นทางการกระทำชื่อเส้นทาง
GET/ ของฉันดัชนีของฉัน ดัชนี
GET/ของฉัน/สร้างสร้างฉัน.สร้าง
POST/ ของฉันจัดเก็บmy.store
GET/ของฉัน/{ของฉัน}โชว์ของฉัน.แสดง
GET/my/{my}/แก้ไขแก้ไขของฉัน.แก้ไข
วาง/แพทช์/ของฉัน/{ของฉัน}ปรับปรุงฉันอัปเดต
ลบ/ของฉัน/{ของฉัน}ทำลายของฉัน ทำลาย

5 – ลองเรียกใช้ URL ที่แสดงในตารางด้านล่าง

URLคำอธิบายทางออก
http://localhost:8000/myดำเนินการเมธอดดัชนีของ MyController.phpดัชนี
http://localhost:8000/my/createดำเนินการสร้างวิธีการของ MyController.phpเพื่อสร้าง
http://localhost:8000/my/1ดำเนินการวิธีการแสดงของ MyController.phpโชว์
http://localhost:8000/my/1/editดำเนินการแก้ไขวิธีการของ MyController.phpแก้ไข

Ercole Palmeri

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

บทความล่าสุด

วิธีจัดระเบียบข้อมูลและสูตรใน Excel ให้ดีที่สุดเพื่อการวิเคราะห์ที่ทำได้ดี

Microsoft Excel เป็นเครื่องมืออ้างอิงสำหรับการวิเคราะห์ข้อมูล เนื่องจากมีฟีเจอร์มากมายสำหรับการจัดระเบียบชุดข้อมูล...

14 2024 พ.ค.

ข้อสรุปเชิงบวกสำหรับโครงการระดมทุน Walliance Equity Crowdfunding ที่สำคัญสองโครงการ: Jesolo Wave Island และ Milano Via Ravenna

Walliance, SIM และแพลตฟอร์มในหมู่ผู้นำในยุโรปในด้าน Real Estate Crowdfunding ตั้งแต่ปี 2017 ประกาศเสร็จสิ้น...

13 2024 พ.ค.

Filament คืออะไร และใช้งาน Laravel Filament ได้อย่างไร

Filament เป็นเฟรมเวิร์กการพัฒนา Laravel แบบ "เร่ง" โดยมีส่วนประกอบแบบฟูลสแตกหลายตัว มันถูกออกแบบมาเพื่อลดความซับซ้อนของกระบวนการ...

13 2024 พ.ค.

ภายใต้การควบคุมของปัญญาประดิษฐ์

«ฉันต้องกลับไปสู่การวิวัฒนาการของฉัน: ฉันจะฉายภาพตัวเองในคอมพิวเตอร์และกลายเป็นพลังงานบริสุทธิ์ เมื่อตกลงกันใน...

10 2024 พ.ค.

ปัญญาประดิษฐ์ใหม่ของ Google สามารถสร้างแบบจำลอง DNA, RNA และ "โมเลกุลทั้งหมดของชีวิต"

Google DeepMind กำลังเปิดตัวโมเดลปัญญาประดิษฐ์เวอร์ชันปรับปรุง โมเดลที่ได้รับการปรับปรุงใหม่ไม่เพียงแต่...

9 2024 พ.ค.

สำรวจสถาปัตยกรรมโมดูลาร์ของ Laravel

Laravel มีชื่อเสียงในด้านไวยากรณ์ที่สวยงามและฟีเจอร์อันทรงพลัง อีกทั้งยังเป็นรากฐานที่มั่นคงสำหรับสถาปัตยกรรมโมดูลาร์อีกด้วย ที่นั่น…

9 2024 พ.ค.

Cisco Hypershield และการเข้าซื้อกิจการ Splunk ยุคใหม่ของการรักษาความปลอดภัยเริ่มต้นขึ้น

Cisco และ Splunk ช่วยให้ลูกค้าเร่งการเดินทางสู่ Security Operations Center (SOC) แห่งอนาคตด้วย...

8 2024 พ.ค.

นอกเหนือจากด้านเศรษฐกิจ: ค่าใช้จ่ายที่ไม่ชัดเจนของแรนซัมแวร์

Ransomware ครองข่าวในช่วงสองปีที่ผ่านมา คนส่วนใหญ่ตระหนักดีว่าการโจมตี...

6 2024 พ.ค.

อ่านนวัตกรรมในภาษาของคุณ

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

ติดตามเรา