Cách gọi hàm JavaScript trong bộ điều khiển Laravel

Ký hiệu "Chấm" có thể được sử dụng để tham chiếu các chế độ xem lồng nhau. Quyền Dưới đây, dữ liệu sẽ hiển thị trên

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
2

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}

Đừng mắc lỗi này trong bộ sưu tập Laravel

Tránh sử dụng chức năng trống trong bộ sưu tập Laravel

Blog. thiên tài. io

Truyền một biến PHP cho JavaScript

Nhưng trong một số trường hợp, bạn muốn chuyển một số var phía máy chủ sang JavaScript. Ví dụ: yêu cầu một số giá trị cho phân tích. Chúng ta có thể chuyển các biến bằng cách sử dụng gói Transform PHP Vars to JavaScript. Ngoài ra, chúng tôi có thể làm mà không cần sử dụng gói này

  • 1. Sử dụng kết xuất JSON
  • 2. Sử dụng Chuyển đổi PHP Vars sang gói JavaScript

1. không có gói. Sử dụng kết xuất JSON

Trong Laravel sẽ được dùng để khởi tạo một biến JavaScript

Thí dụ

Bây giờ hãy thêm dữ liệu mảng vào tuyến ứng dụng. Mảng page_data này chúng ta cần sử dụng làm JavaScript

Route::get('/', function () {
return view('welcome', ['page_data' => [
'title' => 'Home',
'price' => 20
]]);
});

Thêm Js bên dưới. từ trong chế độ xem chào mừng

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
3

mở trình duyệt và kiểm tra page_data trong bảng điều khiển

Ngừng sử dụng DateTime trong PHP

Tại sao chúng ta cần sử dụng DateTime không thay đổi trong PHP?

Blog. thiên tài. io

2. Sử dụng Chuyển đổi PHP Vars sang gói JavaScript

Cài đặt gói thông qua Composer

composer require laracasts/utilities

Thêm gói vào nhà cung cấp

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
4

________số 8_______

Tạo HomeController và gọi chế độ xem chào mừng

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
5

namespace App\Http\Controllers;use App\Http\Controllers\Controller;
use JavaScript;
class HomeController extends Controller
{
public function index()
{
JavaScript::put([
'title' => 'Home',
'price' => 20
]);
return view('welcome');
}
}

Ngoài ra, cập nhật các tuyến đường/web. php để gọi HomeController

Route::get('/', [HomeController::class, 'index']);

Theo mặc định, gói này liên kết các biến JavaScript của bạn với chế độ xem "chân trang". Vì vậy, hãy tạo tệp lưỡi cắt chân trang trống và đưa nó vào chế độ xem chào mừng

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
6

Bạn có thể thay đổi chế độ xem chân trang bằng cách xuất bản cấu hình mặc định. Sau đó cập nhật giá trị cấu hình ‘bind_js_vars_to_this_view’ trên tệp

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
7

php artisan vendor:publish --provider="Laracasts\Utilities\JavaScript\JavaScriptServiceProvider"

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
3

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}
0

Bây giờ tiêu đề và giá có sẵn trên đối tượng cửa sổ

Phần kết luận

Sử dụng gói Biến đổi PHP Vars thành JavaScript nếu biến PHP được yêu cầu trên JavaScript trên hầu hết các trang. Nếu bạn cần một hoặc hai trang, hãy sử dụng phương thức Laravel

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

php artisan make:controller ProvisionServer --invokable

0 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ục

php artisan make:controller ProvisionServer --invokable

1

Bộ đ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

2

namespace 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

3 trên lớp

php artisan make:controller ProvisionServer --invokable

4 sẽ được gọi và các tham số tuyến đường sẽ được truyền cho phương thức

Ghi chú
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 pháp

php artisan make:controller ProvisionServer --invokable

5 và

php artisan make:controller ProvisionServer --invokable

6

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

7 duy nhất trong bộ điều khiển

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

Khi đă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 một 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

8 của lệnh

php artisan make:controller ProvisionServer --invokable

9 Artisan

php artisan make:controller ProvisionServer --invokable

Ghi chú
Sơ khai bộ điều khiển có thể được tùy chỉnh bằng cách sử dụng

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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

Hoặ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

5 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

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

Bộ đ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

$this->middleware(function ($request, $next) {

Bộ đ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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

1 và mô hình

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

2. 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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

4 của lệnh Artisan để nhanh chóng tạo bộ điều khiển để xử lý các hành động này

php artisan make:controller PhotoController --resource

Lệnh này sẽ tạo bộ điều khiển tại

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

5. 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\PhotoController;

Route::resource('photos', PhotoController::class);

Khai 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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

6 Artisan

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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

7

use App\Http\Controllers\UserController;

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

0

Các hành động được xử lý bởi bộ điều khiển tài nguyên

VerbURIActionRoute NameGET

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

8indexphotos. chỉ mụcGET____32_______9tạo ảnh. tạoPOST______32_______8ảnh cửa hàng. cửa hàngGET____34_______1hiển thị ảnh. showGET_______34_______2chỉnh sửa ảnh. chỉnh sửaPUT/PATCH

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

1cập nhật ảnh. cập nhậtXÓA

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

1hủy ảnh. hủy hoại

Tù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

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

5 khi xác định lộ trình tài nguyên của mình. Phương thức

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

5 chấp nhận một bao đóng sẽ được gọi nếu không thể tìm thấy một 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']);

1

Mô hình đã xóa mềm

Thông thường, liên kết mô hình ẩn sẽ không truy xuất các mô hình đã được 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

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

7 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']);

2

Gọi

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

7 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

3,

$this->middleware(function ($request, $next) {

0 và

$this->middleware(function ($request, $next) {

1. Bạn có thể chỉ định một tập hợp con của các route này bằng cách chuyển một mảng tới phương thức

class UserController extends Controller

* Instantiate a new controller instance.

public function __construct()

$this->middleware('auth');

$this->middleware('log')->only('index');

$this->middleware('subscribed')->except('store');

7

use App\Http\Controllers\UserController;

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

3

Chỉ định Mô hình Tài nguyên

Nếu bạn đang sử dụng 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 phiên bản mô hình, bạn có thể sử dụng tùy chọn

$this->middleware(function ($request, $next) {

3 khi tạo bộ điều khiển

use App\Http\Controllers\UserController;

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

4

Tạo yêu cầu biểu mẫu

Bạn có thể cung cấp tùy chọn

$this->middleware(function ($request, $next) {

4 khi tạo bộ điều khiển tài nguyên để hướng dẫn Artisan tạo các phương thức cập nhật và lưu trữ của bộ điều khiển

use 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ư

$this->middleware(function ($request, $next) {

5 và

$this->middleware(function ($request, $next) {

0. Để thuận tiện, bạn có thể sử dụng phương pháp

$this->middleware(function ($request, $next) {

7 để tự động loại trừ hai tuyến đường này

use App\Http\Controllers\UserController;

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

7

Bạ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

$this->middleware(function ($request, $next) {

8

use 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

$this->middleware(function ($request, $next) {

5 hoặc

$this->middleware(function ($request, $next) {

0, hãy sử dụng công tắc

php artisan make:controller PhotoController --resource

1 khi thực hiện lệnh

php artisan make:controller ProvisionServer --invokable

9

use App\Http\Controllers\UserController;

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

9

Tà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

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

0

Tuyế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

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

1

Phạm vi tài nguyên lồng nhau

Tính năng của Laravel có thể tự động khoanh vùng 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

php artisan make:controller PhotoController --resource

3 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ề

Là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 dần 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"

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

2

Định nghĩa tuyến đường này sẽ xác định các tuyến đường sau

VerbURIActionRoute NameGET

php artisan make:controller PhotoController --resource

4indexphotos. bình luận. chỉ mụcGET____40_______5tạo ảnh. bình luận. tạoPOST______40_______4ảnh cửa hàng. bình luận. cửa hàngGET____40_______7hiển thịbình luận. showGET_______40_______8chỉnh sửa. chỉnh sửaPUT/PATCH

php artisan make:controller PhotoController --resource

7cập nhậtbình luận. cập nhậtXÓA

php artisan make:controller PhotoController --resource

7hủ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;

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

3

Đặt tên tham số tuyến đường tài nguyên

Theo mặc định,

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

2 sẽ tạo tham số tuyến đường 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 cách sử dụng phương pháp

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

3. Mảng được truyền vào phương thức

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

3 phải là một mảng kết hợp gồm tên tài nguyên và tên tham số

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

4

Ví dụ trên tạo URI sau cho tuyến đường

php artisan make:controller ProvisionServer --invokable

3 của tài nguyên

Phạm vi định tuyến tài nguyên

Tính năng của Laravel có thể tự động khoanh vùng 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

php artisan make:controller PhotoController --resource

3 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

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

5

Tuyế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

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

6

Khi 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

Route::get('profile', [UserController::class, 'show'])->middleware('auth');

1 có mối quan hệ có tên là

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

8 (số nhiều của tên tham số tuyến đường) có thể được sử dụng để truy xuất mô hình

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

9

Bản địa hóa URI tài nguyên

Theo mặc định,

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

2 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 động

$this->middleware(function ($request, $next) {

5 và

$this->middleware(function ($request, $next) {

0, bạn có thể sử dụng phương pháp

use App\Http\Controllers\UserController;

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

03. Điều này có thể được thực hiện khi bắt đầu phương pháp

use App\Http\Controllers\UserController;

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

04 trong ứng dụng của bạn

use App\Http\Controllers\UserController;

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

05

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

7

Hỗ trợ số nhiều của Laravel. Khi các động từ và ngôn ngữ số nhiều đã được tùy chỉnh, một đă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']);

06 sẽ tạo ra các URI sau

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

8

Bổ 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\PhotoController;

Route::resource('photos', PhotoController::class);

2;

namespace App\Http\Controllers;

class ProvisionServer extends Controller

* Provision a new web server.

* @return \Illuminate\Http\Response

9

Ghi chú
Hãy nhớ giữ cho bộ điều khiển của bạn tập trung. 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

VerbURIActionRoute NameGET

use App\Http\Controllers\UserController;

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

09showprofile. hiển thịGET_______21_______10chỉnh sửa hồ sơ. chỉnh sửaPUT/PATCH

use App\Http\Controllers\UserController;

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

09updateprofile. cập nhật

Tà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);

1

Trong ví dụ này, tài nguyên

use App\Http\Controllers\UserController;

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

12 sẽ nhận được tất cả các ;

VerbURIActionRoute NameGET

use App\Http\Controllers\UserController;

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

14showphotos. hình nhỏ. showGET_______21_______15chỉnh sửa ảnh. hình nhỏ. chỉnh sửaPUT/PATCH

use App\Http\Controllers\UserController;

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

14cập nhật ảnh. hình nhỏ. cập nhật

Tà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']);

17 khi đăng ký tuyến tài nguyên đơn lẻ

use App\Http\Controllers\ProvisionServer;

Route::post('/server', ProvisionServer::class);

2

Trong 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']);

18 cũng sẽ được đăng ký cho các tài nguyên đơn lẻ có thể tạo

VerbURIActionRoute NameGET

use App\Http\Controllers\UserController;

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

19createphotos. hình nhỏ. tạoPOST____21_______14storephotos. hình nhỏ. cửa hàngGET____21_______14hiển thị ảnh. hình nhỏ. showGET_______21_______15chỉnh sửa ảnh. hình nhỏ. chỉnh sửaPUT/PATCH

use App\Http\Controllers\UserController;

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

14cập nhật ảnh. hình nhỏ. cập nhậtXÓA

use App\Http\Controllers\UserController;

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

14hủy ảnh. hình nhỏ. hủy hoại

Nếu bạn muốn Laravel đăng ký route

use App\Http\Controllers\UserController;

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

18 cho một tài nguyên đơn nhưng không đăng ký route tạo hoặc lưu trữ, bạn có thể sử dụng phương thức

use App\Http\Controllers\UserController;

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

26

use App\Http\Controllers\ProvisionServer;

Route::post('/server', ProvisionServer::class);

3

Tài nguyên API Singleton

Phương pháp

use App\Http\Controllers\UserController;

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

27 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 đường

$this->middleware(function ($request, $next) {

5 và

$this->middleware(function ($request, $next) {

0 không cần thiết

use App\Http\Controllers\ProvisionServer;

Route::post('/server', ProvisionServer::class);

4

Tất nhiên, các tài nguyên API đơn lẻ cũng có thể là

use App\Http\Controllers\UserController;

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

17, sẽ đăng ký các tuyến đường

use App\Http\Controllers\UserController;

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

31 và

use App\Http\Controllers\UserController;

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

32 cho tài nguyên

use App\Http\Controllers\ProvisionServer;

Route::post('/server', ProvisionServer::class);

5

Dependency 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);

6

phươ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']);

33 vào các phương thức trong bộ điều khiển của bạn

use App\Http\Controllers\ProvisionServer;

Route::post('/server', ProvisionServer::class);

7

Nế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);

8

Bạn vẫn có thể nhập gợi ý

use App\Http\Controllers\UserController;

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

33 và truy cập tham số

use App\Http\Controllers\UserController;

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

35 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

Làm cách nào để gọi JavaScript trong bộ điều khiển của laravel?

Cách gọi Phương thức điều khiển Laravel trong Jquery/Javascript .
Phương thức điều khiển cuộc gọi từ jquery/javascript. Chúng tôi gọi phương thức điều khiển laravel trong jquery bằng cách sử dụng ajax. .
tuyến đường. Tuyến/web. php. .
Bộ điều khiển người dùng. Trong UserController, chúng tôi sẽ tạo các phương thức để liệt kê tất cả người dùng và lấy dữ liệu của một người dùng bằng ajax. .
Xem tài liệu

Làm thế nào bạn có thể gọi một phương thức điều khiển từ JavaScript?

Cách gọi Phương thức điều khiển từ Javascript .
var xhttp = new XMLHttpRequest();
xhttp. open("POST", "/subscribe/checkout", true);
xhttp. setRequestHeader('Kiểu nội dung', 'ứng dụng/x-www-form-urlencoding');

Bạn có thể sử dụng JavaScript trong laravel không?

Laravel không yêu cầu bạn sử dụng một khung hoặc thư viện JavaScript cụ thể để xây dựng ứng dụng của mình . Trên thực tế, bạn hoàn toàn không phải sử dụng JavaScript. Tuy nhiên, Laravel có bao gồm một số giàn giáo cơ bản để giúp bạn bắt đầu viết JavaScript hiện đại dễ dàng hơn bằng thư viện Vue.

Làm thế nào một chức năng có thể gọi một chức năng khác trong bộ điều khiển laravel?

Cách gọi một hàm điều khiển trong một bộ điều khiển khác trong. .
ví dụ 1. PostController. php. sử dụng Ứng dụng\Http\Controllers\OtherController; . .
ví dụ 2. PostController. php. lớp PostController mở rộng Bộ điều khiển. .
ví dụ 3. PostController. php. lớp PostController mở rộng Bộ điều khiển