Nhiều ứng dụng web yêu cầu người dùng xác minh địa chỉ email của họ trước khi sử dụng ứng dụng. Thay vì buộc bạn phải triển khai lại điều này trên mỗi ứng dụng, Laravel cung cấp các phương thức thuận tiện để gửi và xác minh các yêu cầu xác minh email Show Chuẩn bị mô hìnhĐể bắt đầu, hãy xác minh rằng mô hình
Cân nhắc cơ sở dữ liệuCột Xác minh EmailTiếp theo, bảng Lộ trìnhLaravel bao gồm lớp 0 chứa logic cần thiết để gửi liên kết xác minh và xác minh email. Để đăng ký các tuyến đường cần thiết cho bộ điều khiển này, hãy chuyển tùy chọn 1 cho phương thức 2
Bảo vệ tuyến đườngPhần mềm trung gian định tuyến có thể được sử dụng để chỉ cho phép người dùng đã xác minh truy cập vào một tuyến nhất định. Laravel cung cấp một phần mềm trung gian 3, được định nghĩa tại 4. Vì phần mềm trung gian này đã được đăng ký trong nhân HTTP của ứng dụng của bạn, tất cả những gì bạn cần làm là đính kèm phần mềm trung gian vào định nghĩa tuyến đường
Lượt xemLaravel sẽ tạo tất cả các view xác minh email cần thiết khi lệnh 5 được thực thi. Chế độ xem này được đặt trong 6. Bạn có thể tự do tùy chỉnh chế độ xem này nếu cần cho ứng dụng của mìnhSau khi xác minh emailSau khi địa chỉ email được xác minh, người dùng sẽ tự động được chuyển hướng đến 7. Bạn có thể tùy chỉnh vị trí chuyển hướng sau xác minh bằng cách xác định phương pháp hoặc thuộc tính 8 trên 9
Sự kiệnLaravel gửi các sự kiện trong quá trình xác minh email. Bạn có thể đính kèm người nghe với những sự kiện này trong 0 của bạn Ở đây, tôi sẽ chỉ cho bạn cách làm việc Laravel Class "App\Http\Controllers\Auth" not found. Mình xin chia sẻ với các bạn app http controllers của lớp laravel auth not found. Chúng tôi sẽ sử dụng laravel auth not found. Tôi muốn cho bạn thấy Class 'App\Http\Controllers\Auth' không tìm thấy trong laravel. Được rồi, hãy đi sâu vào các bước Bạn có thể giải quyết vấn đề 'Class "App\Http\Controllers\Auth" not found' trong phiên bản laravel 6, laravel 7, laravel 8 và laravel 9 Một vài ngày trước, tôi đang làm việc trên ứng dụng laravel của mình và tôi chỉ cần có người dùng hiện tại bằng cách sử dụng Auth facade. Khi tôi chạy dự án thì tôi thấy lỗi 'Class "App\Http\Controllers\Auth" not found'. bạn cũng có thể thấy ảnh chụp màn hình dưới đây Vấn đề Sau một số nghiên cứu, tôi thấy rằng nếu bạn đang sử dụng mặt tiền "Auth" trong tệp Trình điều khiển, Phần mềm trung gian hoặc phiến thì bạn phải sử dụng mặt tiền ở trên cùng vì vậy hãy xem giải pháp dưới đây và mã ví dụ tại đây Giải pháp Bạn phải thêm "use Illuminate\Support\Facades\Auth;" . Hãy xem dưới đây Laravel 8 được phát hành vào tháng 9 năm 2020 với rất nhiều tính năng và thay đổi mới. Một trong những thay đổi đó là việc loại bỏ không gian tên tuyến đường mặc định Mặc dù thay đổi này tương thích ngược, nghĩa là các dự án cũ hơn đã sử dụng Laravel 7. x có thể dễ dàng chuyển sang Laravel 8. x mà không phải thay đổi bất cứ điều gì, các dự án mới được tạo trong Laravel 8 (bắt đầu từ ngày 8 tháng 9 năm 2020) phải tính đến điều này Nhiều nhà phát triển đã gặp sự cố trong các ứng dụng Laravel 8 mới tạo của họ khi họ cố tải các tuyến đường của mình và họ gặp phải một Ngoại lệ có nội dung như Hãy nhớ rằng lỗi của bạn có thể không giống như thế nàyĐừng lo lắng, mã của bạn không bị hỏng. Điều đã xảy ra là cách bạn quen làm mọi việc và cách mà hầu hết các hướng dẫn mô tả định tuyến hiện không hoạt động. Nhưng điều này có thể được khắc phục chỉ trong vài phút Sự thay đổi Cho đến Laravel 7, RouteServiceProvider. tệp php có đoạn mã sau TuyếnDịch vụProvider. php trong Laravel 7. xĐiều này làm cho Laravel tải các route trong routes/web. php, sử dụng phần mềm trung gian web và không gian tên App\Http\Controllers. Ngược lại, điều này có nghĩa là bất cứ khi nào bạn khai báo một route bằng cú pháp chuỗi, Laravel sẽ tìm bộ điều khiển đó trong thư mục App\Http\Controllers Trong Laravel 8, biến $namespace đã bị xóa và khai báo Route được đổi thành TuyếnDịch vụProvider. php trong Laravel 8. xBây giờ, Laravel đang tìm các route bên trong trang web của bạn. php, như mọi khi. Nó cũng đang áp dụng phần mềm trung gian web, như mọi khi. Nhưng lưu ý rằng nó không còn sử dụng không gian tên trước đó nữa Điều này có nghĩa là bắt đầu từ Laravel 8, khi bạn khai báo các route của mình bằng cú pháp chuỗi, Laravel sẽ không tìm kiếm bộ điều khiển của bạn bên trong App\Http\Controllers Làm thế nào để tôi khắc phục điều này? Vấn đề ở đây là Laravel không biết tìm bộ điều khiển của bạn ở đâu, vì vậy tất cả những gì chúng ta phải làm là cho nó biết. Có 3 cách bạn có thể thực hiện điều này
Thêm không gian tên theo cách thủ côngĐiều này khá đơn giản. Đi vào RouteserviceProvider của bạn. php và bạn sẽ thấy như sau Tất cả những gì bạn cần làm là thêm ba dòng sau vào tệp này và Laravel sẽ quay lại sử dụng không gian tên mặc định như trong Laravel 7. x Chúng ta vừa làm gì? Nếu bạn cố chạy lại ứng dụng của mình, mọi thứ sẽ hoạt động Sử dụng không gian tên đầy đủĐiều này liên quan đến việc thay đổi tất cả các khai báo tuyến đường của bạn, nhưng ý tưởng rất đơn giản. thêm tên bộ điều khiển của bạn với không gian tên của họ. Xem ví dụ sau về PostController của chúng tôi bên trong thư mục app/Http/Controllers Nếu bạn thử lại, mọi thứ sẽ chạy trơn tru Sử dụng cú pháp hành độngĐây là giải pháp thay thế mà cá nhân tôi khuyên dùng vì tôi thấy nó chống lỗi đánh máy tốt hơn và theo kinh nghiệm của tôi cung cấp hỗ trợ IDE tốt hơn vì chúng tôi đang nói rõ ràng cho mã biết nên sử dụng lớp nào. Thay vì sử dụng cú pháp chuỗi thông thường, chúng ta có thể sử dụng cú pháp hành động trong đó chúng ta chỉ định lớp và phương thức sẽ sử dụng trong một mảng Lưu ý ở đây chúng tôi không chuyển PostController trong dấu ngoặc kép mà thay vào đó là PostController. class, bên trong sẽ trả về ‘App\Http\Controllers\PostsController’. Giá trị thứ hai trong mảng là phương thức gọi trong bộ điều khiển đó, nghĩa là. “Trong PostController. php gọi phương thức 'tất cả' Một lần nữa, nếu bạn cố chạy lại ứng dụng của mình, mọi thứ sẽ được thiết lập và chạy Đóng nhận xétĐến bây giờ, ứng dụng của bạn sẽ hoạt động trở lại. Nếu không, xin vui lòng yêu cầu giúp đỡ. Mọi người trong cộng đồng đều háo hức giúp một tay Cho dù bạn đã thêm không gian tên theo cách thủ công, đã chỉ định không gian tên đầy đủ trong các tuyến đường của mình hay sử dụng cú pháp hành động, những gì bạn vừa làm là cho Laravel biết không gian tên mà bộ điều khiển của bạn thực sự ở đâu, vì vậy bây giờ nó thực sự biết nơi cần tìm Nếu bạn thích những gì bạn đọc hoặc muốn tìm hiểu thêm những thứ hay ho liên quan đến Laravel, bạn có thể theo dõi tôi trên Twitter, nơi tôi đăng bài về lập trình, tinh thần kinh doanh và sống một cuộc sống tốt đẹp hơn Nếu bạn hoặc ai đó mà bạn biết đang muốn thuê một nhà phát triển Laravel tự do, hãy liên hệ qua Twitter hoặc lên lịch một cuộc gọi nhanh để chúng tôi có thể kết nối |