Tôi đồng ý với netorious. Tôi sẽ không nói điều đó là sai nhưng tôi chắc chắn sẽ không làm theo cách đó trong khuôn khổ dựa trên "~V~"
Cho đến khi một câu trả lời tốt hơn xuất hiện. Tôi có thể đặt chức năng của bạn vào khu vực "thư viện" (đảm bảo liên kết đến thư mục mới) và sau đó đặt lệnh gọi hàm getBanner vào bộ điều khiển cơ sở (bằng cách này, bạn sẽ có quyền truy cập vào chức năng thông qua ứng dụng của mình)
Tôi chắc chắn rằng có một cách tốt hơn để làm điều này mặc dù. (
Cập nhật lần cuối 7 tháng trước
Phương thức 34 này sẽ làm gì?
Cập nhật lần cuối 7 tháng trước
Tạo một Thư viện, thư viện của riêng bạn để xử lý những thứ như vậy
Class myLib { public static function getBanner($url=''){ //do me a favor here..... return $url; } }đăng ký lớp học của bạn cho một cuộc gọi toàn cầu
Gọi nó ở bất cứ đâu trong chế độ xem
Cập nhật lần cuối 7 tháng trước
Điều tôi muốn làm là gọi phương thức getBanner($size) và nó trả về một biểu ngữ ngẫu nhiên có kích thước phù hợp. Nó sẽ trả lại url cho biểu ngữ, thẻ alt và liệu đó có phải là liên kết theo dõi hay không
Tôi đã thấy rất nhiều cách khác nhau để làm điều đó, nhưng tôi đang tìm kiếm cách tốt nhất. Tôi không muốn viết lại 6 tháng sắp tới. . ) Tôi thích ý tưởng về thư viện nhưng tôi tự hỏi liệu có quá nhiều mã trong chế độ xem không
Điều gì về một nhà soạn nhạc xem?
Alex
Cập nhật lần cuối 7 tháng trước
Được rồi nếu bạn đang tìm nạp nhiều hơn 1, bạn sẽ cần một lớp riêng để xử lý nó. Tôi sẽ tạo một lớp 35 hoặc thứ gì đó để tạo hiệu ứng đó và để nó hoạt động giống như cách @codetrash đã triển khai nó
Thay vì xác định tất cả logic xử lý yêu cầu của bạn dưới dạng bao đóng trong tệp tuyến đường, bạn có thể tổ chức hành vi này bằng cách sử dụng các lớp "bộ điều khiển". Bộ điều khiển có thể nhóm logic xử lý yêu cầu liên quan thành một lớp duy nhất. Ví dụ: một lớp
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
9 có thể xử lý tất cả các yêu cầu đến liên quan đến người dùng, bao gồm hiển thị, tạo, cập nhật và xóa người dùng. Theo mặc định, bộ điều khiển được lưu trữ trong thư mụcphp artisan make:controller ProvisionServer --invokable
0Bộ điều khiển viết
Bộ điều khiển cơ bản
Hãy xem một ví dụ về bộ điều khiển cơ bản. Lưu ý rằng bộ điều khiển mở rộng lớp bộ điều khiển cơ sở có trong Laravel.
php artisan make:controller ProvisionServer --invokable
1namespace App\Http\Controllers;
class UserController extends Controller
* Show the profile for a given user.
* @return \Illuminate\View\View
return view('user.profile', [
'user' => User::findOrFail($id)
Bạn có thể xác định tuyến đường đến phương thức điều khiển này như vậy
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
Khi một yêu cầu đến khớp với URI tuyến đường đã chỉ định, phương thức
php artisan make:controller ProvisionServer --invokable
2 trên lớpphp artisan make:controller ProvisionServer --invokable
3 sẽ được gọi và các tham số tuyến đường sẽ được truyền cho phương thứcLưu ý
Bộ điều khiển không bắt buộc phải mở rộng lớp cơ sở. Tuy nhiên, bạn sẽ không có quyền truy cập vào các tính năng tiện lợi như phương thứcphp artisan make:controller ProvisionServer --invokable
4 vàphp artisan make:controller ProvisionServer --invokable
5.
Bộ điều khiển hành động đơn lẻ
Nếu một hành động của bộ điều khiển đặc biệt phức tạp, bạn có thể thấy thuận tiện khi dành toàn bộ lớp bộ điều khiển cho hành động đơn lẻ đó. Để thực hiện điều này, bạn có thể định nghĩa một phương thức
php artisan make:controller ProvisionServer --invokable
6 duy nhất trong bộ điều khiển 2Khi đăng ký định tuyến cho bộ điều khiển hành động đơn lẻ, bạn không cần chỉ định phương thức điều khiển. Thay vào đó, bạn có thể chỉ cần chuyển tên của bộ điều khiển cho bộ định tuyến
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
Bạn có thể tạo bộ điều khiển không thể triệu hồi bằng cách sử dụng tùy chọn
php artisan make:controller ProvisionServer --invokable
7 của lệnh Artisanphp artisan make:controller ProvisionServer --invokable
8php artisan make:controller ProvisionServer --invokable
Lưu ý
Sơ khai bộ điều khiển có thể được tùy chỉnh bằng cách sử dụng xuất bản sơ khai.
Phần mềm trung gian điều khiển
Phần mềm trung gian có thể được gán cho các tuyến của bộ điều khiển trong các tệp tuyến của bạn
7Hoặc, bạn có thể thấy thuận tiện khi chỉ định phần mềm trung gian trong hàm tạo của bộ điều khiển của mình. Sử dụng phương thức
php artisan make:controller ProvisionServer --invokable
4 trong hàm tạo của bộ điều khiển, bạn có thể gán phần mềm trung gian cho các hành động của bộ điều khiển 9Bộ điều khiển cũng cho phép bạn đăng ký phần mềm trung gian bằng cách sử dụng bao đóng. Điều này cung cấp một cách thuận tiện để xác định phần mềm trung gian nội tuyến cho một bộ điều khiển mà không cần xác định toàn bộ lớp phần mềm trung gian
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
0Bộ điều khiển tài nguyên
Nếu bạn coi mỗi mô hình Eloquent trong ứng dụng của mình là một "tài nguyên", thì thông thường bạn sẽ thực hiện cùng một nhóm hành động đối với từng tài nguyên trong ứng dụng của mình. Ví dụ: hãy tưởng tượng ứng dụng của bạn chứa mô hình 70 và mô hình 71. Có khả năng người dùng có thể tạo, đọc, cập nhật hoặc xóa các tài nguyên này
Do trường hợp sử dụng phổ biến này, định tuyến tài nguyên Laravel chỉ định các tuyến tạo, đọc, cập nhật và xóa ("CRUD") điển hình cho bộ điều khiển với một dòng mã. Để bắt đầu, chúng ta có thể sử dụng tùy chọn 73 của lệnh
php artisan make:controller ProvisionServer --invokable
8 Artisan để nhanh chóng tạo bộ điều khiển để xử lý các hành động nàyuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
5Lệnh này sẽ tạo bộ điều khiển tại 74. Bộ điều khiển sẽ chứa một phương thức cho từng hoạt động tài nguyên có sẵn. Tiếp theo, bạn có thể đăng ký một tuyến tài nguyên trỏ đến bộ điều khiển
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
7Khai báo tuyến đơn này tạo nhiều tuyến để xử lý nhiều hành động khác nhau trên tài nguyên. Bộ điều khiển được tạo sẽ có sẵn các phương thức cho từng hành động này. Hãy nhớ rằng, bạn luôn có thể xem tổng quan nhanh về các tuyến ứng dụng của mình bằng cách chạy lệnh Artisan 75
Bạn thậm chí có thể đăng ký nhiều bộ điều khiển tài nguyên cùng một lúc bằng cách chuyển một mảng tới phương thức 76
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
0Các hành động được xử lý bởi bộ điều khiển tài nguyên
Động từURIAhành độngTên tuyến đườngGET____177indexphotos. chỉ mụcGET____178tạo ảnh. tạoPOST____177storephotos. cửa hàngGET____190showphotos. showGET____191chỉnh sửa ảnh. chỉnh sửaPUT/PATCH 90cập nhật ảnh. cập nhậtXÓA 90hủy ảnh. hủy hoạiTùy chỉnh hành vi mô hình bị thiếu
Thông thường, phản hồi HTTP 404 sẽ được tạo nếu không tìm thấy mô hình tài nguyên bị ràng buộc ngầm. Tuy nhiên, bạn có thể tùy chỉnh hành vi này bằng cách gọi phương thức 94 khi xác định tuyến tài nguyên của mình. Phương thức 94 chấp nhận một bao đóng sẽ được gọi nếu không tìm thấy mô hình ràng buộc ngầm cho bất kỳ tuyến nào của tài nguyên
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
1Mô hình đã xóa mềm
Thông thường, liên kết mô hình ngầm định sẽ không truy xuất các mô hình đã bị xóa mềm và thay vào đó sẽ trả về phản hồi HTTP 404. Tuy nhiên, bạn có thể hướng dẫn khung cho phép các mô hình bị xóa mềm bằng cách gọi phương thức 96 khi xác định tuyến tài nguyên của bạn
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
2Gọi 96 không có đối số sẽ cho phép các mô hình bị xóa mềm cho các tuyến tài nguyên
php artisan make:controller ProvisionServer --invokable
2, 99 vàuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
00. Bạn có thể chỉ định một tập hợp con của các tuyến đường này bằng cách chuyển một mảng tới phương thức 96use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
3Chỉ định Mô hình Tài nguyên
Nếu bạn đang sử dụng liên kết mô hình định tuyến và muốn các phương thức của bộ điều khiển tài nguyên gõ gợi ý một thể hiện mô hình, bạn có thể sử dụng tùy chọn
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
02 khi tạo bộ điều khiểnuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
4Tạo yêu cầu biểu mẫu
Bạn có thể cung cấp tùy chọn
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
03 khi tạo bộ điều khiển tài nguyên để hướng dẫn Artisan tạo các lớp yêu cầu biểu mẫu cho các phương thức lưu trữ và cập nhật của bộ điều khiểnuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
5Định tuyến tài nguyên một phần
Khi khai báo một tuyến tài nguyên, bạn có thể chỉ định một tập hợp con các hành động mà bộ điều khiển sẽ xử lý thay vì toàn bộ các hành động mặc định
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
6Định tuyến tài nguyên API
Khi khai báo các tuyến tài nguyên sẽ được API sử dụng, thông thường bạn sẽ muốn loại trừ các tuyến trình bày các mẫu HTML, chẳng hạn như
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
04 và 99. Để thuận tiện, bạn có thể sử dụng phương phápuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
06 để tự động loại trừ hai tuyến đường nàyuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
7Bạn có thể đăng ký nhiều bộ điều khiển tài nguyên API cùng một lúc bằng cách chuyển một mảng tới phương thức
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
07use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
8Để nhanh chóng tạo bộ điều khiển tài nguyên API không bao gồm các phương thức
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
04 hoặc 99, hãy sử dụng công tắcuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
50 khi thực hiện lệnhphp artisan make:controller ProvisionServer --invokable
8use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
9Tài nguyên lồng nhau
Đôi khi bạn có thể cần xác định các tuyến đến một tài nguyên lồng nhau. Ví dụ: tài nguyên ảnh có thể có nhiều nhận xét có thể được đính kèm với ảnh. Để lồng các bộ điều khiển tài nguyên, bạn có thể sử dụng ký hiệu "dấu chấm" trong phần khai báo tuyến đường của mình
20Tuyến đường này sẽ đăng ký một tài nguyên lồng nhau có thể được truy cập bằng các URI như sau
21Phạm vi tài nguyên lồng nhau
Tính năng liên kết mô hình ẩn của Laravel có thể tự động xác định phạm vi liên kết lồng nhau sao cho mô hình con đã giải quyết được xác nhận thuộc về mô hình mẹ. Bằng cách sử dụng phương pháp
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
52 khi xác định tài nguyên lồng nhau của bạn, bạn có thể bật phạm vi tự động cũng như hướng dẫn Laravel trường nào tài nguyên con sẽ được truy xuất bởi. Để biết thêm thông tin về cách thực hiện điều này, vui lòng xem tài liệu về định tuyến tài nguyênLàm tổ nông
Thông thường, không nhất thiết phải có cả ID cha và ID con trong một URI vì ID con đã là một mã định danh duy nhất. Khi sử dụng các mã định danh duy nhất, chẳng hạn như các khóa chính tăng tự động để xác định các mô hình của bạn trong các phân đoạn URI, bạn có thể chọn sử dụng "lồng nhau nông"
22Định nghĩa tuyến đường này sẽ xác định các tuyến đường sau
Động từURIAhành độngTên tuyến đườngGET____253indexphotos. bình luận. chỉ mụcGET____254tạo ảnh. bình luận. tạoPOST____253storephotos. bình luận. cửa hàngGET____256hiển thịbình luận. hiển thịGETuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
57chỉnh sửabình luận. chỉnh sửaPUT/PATCHuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
56cập nhậtbình luận. cập nhậtXÓAuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
56hủy bình luận. hủy hoạiĐặt tên các tuyến tài nguyên
Theo mặc định, tất cả các hành động của bộ điều khiển tài nguyên đều có tên tuyến đường;
23Đặt tên tham số tuyến đường tài nguyên
Theo mặc định,
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
71 sẽ tạo các tham số định tuyến cho các tuyến tài nguyên của bạn dựa trên phiên bản "số ít" của tên tài nguyên. Bạn có thể dễ dàng ghi đè điều này trên cơ sở từng tài nguyên bằng phương phápuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
72. Mảng được truyền vào phương thứcuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
72 phải là một mảng kết hợp gồm tên tài nguyên và tên tham số 24Ví dụ trên tạo URI sau cho tuyến đường
php artisan make:controller ProvisionServer --invokable
2 của tài nguyênPhạm vi định tuyến tài nguyên
Tính năng liên kết mô hình ẩn có phạm vi của Laravel có thể tự động xác định phạm vi các liên kết lồng nhau sao cho mô hình con đã giải quyết được xác nhận thuộc về mô hình mẹ. Bằng cách sử dụng phương pháp
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
52 khi xác định tài nguyên lồng nhau của bạn, bạn có thể bật phạm vi tự động cũng như hướng dẫn Laravel trường nào tài nguyên con sẽ được truy xuất bởi 25Tuyến đường này sẽ đăng ký một tài nguyên lồng nhau trong phạm vi có thể được truy cập bằng các URI như sau
26Khi sử dụng liên kết ẩn có khóa tùy chỉnh làm tham số định tuyến lồng nhau, Laravel sẽ tự động xác định phạm vi truy vấn để truy xuất mô hình lồng nhau bởi cha của nó bằng cách sử dụng các quy ước để đoán tên mối quan hệ trên cha. Trong trường hợp này, giả định rằng mô hình 70 có mối quan hệ có tên là
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
77 (số nhiều của tên tham số tuyến đường) có thể được sử dụng để truy xuất mô hìnhuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
78Bản địa hóa URI tài nguyên
Theo mặc định,
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
71 sẽ tạo các URI tài nguyên bằng các động từ tiếng Anh và quy tắc số nhiều. Nếu bạn cần bản địa hóa các động từ hành độnguse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
04 và 99, bạn có thể sử dụng phương phápuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
02. Điều này có thể được thực hiện khi bắt đầu phương thứcuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
03 trong ứng dụng của bạnuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
04 27Bộ đa dạng của Laravel hỗ trợ một số ngôn ngữ khác nhau mà bạn có thể định cấu hình dựa trên nhu cầu của mình. Khi các động từ và ngôn ngữ số nhiều đã được tùy chỉnh, đăng ký định tuyến tài nguyên chẳng hạn như
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
05 sẽ tạo ra các URI sau 28Bổ sung bộ điều khiển tài nguyên
Nếu bạn cần thêm các tuyến bổ sung vào bộ điều khiển tài nguyên ngoài tập hợp các tuyến tài nguyên mặc định, bạn nên xác định các tuyến đó trước khi gọi phương thức
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
71; 29Lưu ý
Hãy nhớ tập trung vào bộ điều khiển của bạn. Nếu bạn thấy mình thường xuyên cần các phương thức bên ngoài tập hợp các hành động tài nguyên thông thường, hãy cân nhắc chia bộ điều khiển của bạn thành hai bộ điều khiển nhỏ hơn.
Bộ điều khiển tài nguyên Singleton
Đôi khi, ứng dụng của bạn sẽ có các tài nguyên chỉ có thể có một phiên bản duy nhất. Ví dụ: "hồ sơ" của người dùng có thể được chỉnh sửa hoặc cập nhật, nhưng người dùng không được có nhiều hơn một "hồ sơ". Tương tự như vậy, một hình ảnh có thể có một "hình thu nhỏ" duy nhất. Các tài nguyên này được gọi là "tài nguyên đơn", nghĩa là có thể tồn tại một và chỉ một phiên bản tài nguyên. Trong những trường hợp này, bạn có thể đăng ký bộ điều khiển tài nguyên "singleton"
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
0Định nghĩa tài nguyên đơn lẻ ở trên sẽ đăng ký các tuyến đường sau. Như bạn có thể thấy, các tuyến "tạo" không được đăng ký cho các tài nguyên đơn lẻ và các tuyến đã đăng ký không chấp nhận một mã định danh vì chỉ có thể tồn tại một phiên bản của tài nguyên
Động từURIAhành độngTên tuyến đườngGET____608hiển thịhồ sơ. hiển thịGETuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
09chỉnh sửa hồ sơ. chỉnh sửaPUT/PATCHuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
08updateprofile. cập nhậtTài nguyên Singleton cũng có thể được lồng trong một tài nguyên tiêu chuẩn
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
1Trong ví dụ này, tài nguyên
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
11 sẽ nhận được tất cả các tuyến tài nguyên tiêu chuẩn; Động từURIAhành độngTên tuyến đườngGET____613showphotos. hình nhỏ. hiển thịGET____614chỉnh sửa ảnh. hình nhỏ. chỉnh sửaPUT/PATCHuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
13cập nhật ảnh. hình nhỏ. cập nhậtTài nguyên Singleton có thể tạo
Đôi khi, bạn có thể muốn xác định các tuyến tạo và lưu trữ cho một tài nguyên đơn lẻ. Để thực hiện điều này, bạn có thể gọi phương thức
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
16 khi đăng ký tuyến tài nguyên đơnuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
2Trong ví dụ này, các route sau sẽ được đăng ký. Như bạn có thể thấy, một tuyến đường
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
17 cũng sẽ được đăng ký cho các tài nguyên đơn lẻ có thể tạoĐộng từURIAhành độngTên tuyến đườngGET____618tạo ảnh. hình nhỏ. tạoPOST____613storephotos. hình nhỏ. cửa hàngGET____613hiển thị ảnh. hình nhỏ. hiển thịGET____614chỉnh sửa ảnh. hình nhỏ. chỉnh sửaPUT/PATCHuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
13cập nhật ảnh. hình nhỏ. cập nhậtDELETEuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
13hủy ảnh. hình nhỏ. hủy hoạiTài nguyên API Singleton
Phương pháp
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
24 có thể được sử dụng để đăng ký một tài nguyên đơn lẻ sẽ được thao tác thông qua API, do đó khiến các tuyến đườnguse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
04 và 99 không cần thiếtuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
3Tất nhiên, tài nguyên API đơn lẻ cũng có thể là
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
16, sẽ đăng ký các tuyến đườnguse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
28 vàuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
29 cho tài nguyênuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
4Dependency injection & Controllers
Xây dựng tiêm
Bộ chứa dịch vụ Laravel được sử dụng để giải quyết tất cả các bộ điều khiển của Laravel. Do đó, bạn có thể gõ gợi ý bất kỳ phụ thuộc nào mà bộ điều khiển của bạn có thể cần trong hàm tạo của nó. Các phụ thuộc đã khai báo sẽ tự động được giải quyết và đưa vào phiên bản bộ điều khiển
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
5phương pháp tiêm
Ngoài việc tiêm hàm tạo, bạn cũng có thể phụ thuộc kiểu gợi ý vào các phương thức của bộ điều khiển của mình. Một trường hợp sử dụng phổ biến để đưa phương thức vào là đưa phiên bản
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
30 vào các phương thức trong bộ điều khiển của bạnuse App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
6Nếu phương thức điều khiển của bạn cũng đang mong đợi đầu vào từ một tham số tuyến đường, hãy liệt kê các đối số tuyến đường của bạn sau các phụ thuộc khác của bạn. Ví dụ: nếu tuyến đường của bạn được xác định như vậy
use App\Http\Controllers\ProvisionServer;
Route::post('/server', ProvisionServer::class);
7Bạn vẫn có thể nhập gợi ý
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
30 và truy cập tham sốuse App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
32 của mình bằng cách xác định phương thức điều khiển của bạn như sau