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
Microsoft Excel เป็นเครื่องมืออ้างอิงสำหรับการวิเคราะห์ข้อมูล เนื่องจากมีฟีเจอร์มากมายสำหรับการจัดระเบียบชุดข้อมูล...
Walliance, SIM และแพลตฟอร์มในหมู่ผู้นำในยุโรปในด้าน Real Estate Crowdfunding ตั้งแต่ปี 2017 ประกาศเสร็จสิ้น...
Filament เป็นเฟรมเวิร์กการพัฒนา Laravel แบบ "เร่ง" โดยมีส่วนประกอบแบบฟูลสแตกหลายตัว มันถูกออกแบบมาเพื่อลดความซับซ้อนของกระบวนการ...
«ฉันต้องกลับไปสู่การวิวัฒนาการของฉัน: ฉันจะฉายภาพตัวเองในคอมพิวเตอร์และกลายเป็นพลังงานบริสุทธิ์ เมื่อตกลงกันใน...
Google DeepMind กำลังเปิดตัวโมเดลปัญญาประดิษฐ์เวอร์ชันปรับปรุง โมเดลที่ได้รับการปรับปรุงใหม่ไม่เพียงแต่...
Laravel มีชื่อเสียงในด้านไวยากรณ์ที่สวยงามและฟีเจอร์อันทรงพลัง อีกทั้งยังเป็นรากฐานที่มั่นคงสำหรับสถาปัตยกรรมโมดูลาร์อีกด้วย ที่นั่น…
Cisco และ Splunk ช่วยให้ลูกค้าเร่งการเดินทางสู่ Security Operations Center (SOC) แห่งอนาคตด้วย...
Ransomware ครองข่าวในช่วงสองปีที่ผ่านมา คนส่วนใหญ่ตระหนักดีว่าการโจมตี...