Cập nhật trong laravel là gì?
Khi xây dựng API, chúng tôi thường bắt gặp các hoạt động CRUD, mặc dù các hoạt động này là một trong những điều đầu tiên chúng tôi học được khi bắt đầu làm việc với phụ trợ, một số hoạt động này có thể có ít mã hơn đáng kể Show Bên cạnh đó, mã này thường xuyên bị trùng lặp trên các bộ điều khiển. Trong quá trình làm việc với Laravel, tôi nhận thấy rằng điều này thường xảy ra trong các chức năng cập nhật và đó là lý do tại sao tôi quyết định chia sẻ cách đơn giản hóa việc triển khai này Nội dung
cách thông thườngTrước khi chúng ta chuyển sang phần đơn giản hóa, chúng ta hãy xem hoạt động cập nhật trông như thế nào khi được triển khai theo quy ước
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở dòng đầu tiên, chúng tôi đang truy vấn người dùng bằng ID của họ và lưu kết quả vào đối tượng 7Sau đó, ở điều kiện đầu tiên, chúng tôi đang kiểm tra xem 7 có null không, nếu có, điều đó có nghĩa là không tìm thấy bản ghi nào có ID đã cho và thông báo lỗi với trạng thái 404 sẽ được phản hồiSau đó, chúng tôi có một điều kiện thứ hai nơi chúng tôi đang gọi 1 với dữ liệu mà chúng tôi muốn cập nhật, hàm này trả về true hoặc false để cho chúng tôi biết nếu dữ liệu được cập nhật thành công. Trong trường hợp nó trả về false, một thông báo lỗi với trạng thái 400 sẽ được phản hồiCuối cùng, nếu dữ liệu được cập nhật thành công, chúng tôi sẽ hiển thị người dùng được cập nhật dưới dạng phản hồi Rút ngắn nóTại sao không sử dụng hàm trợ giúp 2 để rút ngắn mã của chúng tôi?
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở dòng đầu tiên, chúng tôi đang truy vấn người dùng bằng ID của họ bằng hàm 2. Hàm này có một hành vi đặc biệt trong đó một ngoại lệ được đưa ra trong trường hợp không tìm thấy dữ liệu cho ID đã choĐể tận dụng tối đa thay đổi này, chúng ta cần biết cách tự động hóa việc xử lý ngoại lệ do 2 đưa ra. Nếu không, sẽ cần phải sử dụng khối thử/bắt và số lượng dòng sẽ gần như giống nhauNhư trong ví dụ trước, chúng tôi có một điều kiện mà chúng tôi đang gọi 1 với dữ liệu mà chúng tôi muốn cập nhật. Trong trường hợp nó trả về false, một thông báo lỗi với trạng thái 400 sẽ được phản hồiCuối cùng, nếu người dùng đã cập nhật chính xác, chúng tôi sẽ hiển thị người dùng đã cập nhật dưới dạng phản hồi Hàm updateOrFail
Bây giờ chúng ta đã thấy hai cách khác nhau để triển khai hành động cập nhật trên Laravel, hãy xem cách chúng ta có thể triển khai điều này bằng hàm 6________số 8 Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở dòng đầu tiên, chúng tôi đang truy vấn người dùng bằng ID của họ bằng hàm 2Tiếp theo, chúng tôi có một điều kiện thứ hai nơi chúng tôi đang gọi 8 với dữ liệu mà chúng tôi muốn cập nhật, hàm này trả về true hoặc false để cho chúng tôi biết nếu dữ liệu được cập nhật thành công. Trong trường hợp nó trả về false, một thông báo lỗi với trạng thái 400 sẽ được phản hồiVà một lần nữa, nếu người dùng đã cập nhật chính xác, chúng tôi sẽ hiển thị người dùng đã cập nhật dưới dạng phản hồi
Đây là một triển khai rất kỳ lạ trong khung, vì hầu hết các hàm 9 thường đưa ra một ngoại lệ. Nếu đúng như vậy, chúng ta chỉ có thể tự động hóa việc xử lý ngoại lệ do hàm 6 đưa ra giống như cách chúng ta đã làm trong bài đăng cuối cùng trong loạt bài về ngoại lệ của tôiNếu chúng ta có một hàm 9 tiêu chuẩn, thì hàm này sẽ là cách đơn giản nhất để thực hiện một hành động cập nhật trong bộ điều khiển, loại bỏ hoàn toàn nhu cầu về cách tiếp cận sẽ được giải thích trong phần tiếp theotrừu tượng hóa nóHãy xem cách chúng ta có thể trừu tượng hóa việc triển khai này theo cách mà chúng ta có được khả năng sử dụng lại cao với cách sử dụng đơn giản từ sự trừu tượng hóa này Vì sự trừu tượng hóa này tương tác với các mô hình, tôi muốn tránh sử dụng tính kế thừa vì nó sẽ là một khớp nối quá cao đối với một sự trừu tượng hóa đơn giản như cái này Hơn nữa, tôi muốn để mở tính kế thừa trong các mô hình để sử dụng, cho dù theo quyết định của thành viên nhóm hay theo một số trường hợp sử dụng cụ thể Vì lý do đó, tôi đã chọn triển khai tính trừu tượng trong một Đặc điểm. Khác với C++, nơi chúng ta có thể sử dụng đa kế thừa, trong PHP, Trait là cơ chế để giảm các hạn chế xung quanh kế thừa đơn lẻ Bên cạnh đó, tôi có một quy tắc cá nhân là tôi chỉ sử dụng Đặc điểm khi triển khai được sử dụng lại nhiều, vì hầu hết các bộ điều khiển của tôi đều có hành động cập nhật, trong ngữ cảnh của tôi, đây là thứ được sử dụng lại nhiều trừu tượng đặc điểm 4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Đặc điểm của chúng tôi sẽ là sự kết hợp của hai chức năng, 2 chịu trách nhiệm trả về một phiên bản của mô hình thực hiện đặc điểm và 3 chịu trách nhiệm cập nhật mô hình hoặc đưa ra một ngoại lệ trong trường hợp cập nhật không thành công
chức năng mô hình 1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Như đã đề cập, hàm này chịu trách nhiệm trả về một phiên bản của mô hình triển khai đặc điểm và vì PHP cho phép chúng tôi sử dụng lập trình meta để khởi tạo các lớp, hãy tận dụng lợi thế đó và tự động khởi tạo mô hình theo tên lớp của nó Tại hàm này, chúng ta có một dòng duy nhất với câu lệnh return khởi tạo một đối tượng mới ra khỏi hàm 8. Để hiểu đầy đủ về cách thức hoạt động của hàm này, hãy giả sử rằng đặc điểm này được triển khai bởi mô hình Người dùng, khi đánh giá kết quả của hàm, chúng ta sẽ nhận được một chuỗi 9Khi được đánh giá bởi trình thông dịch, dòng này sẽ tương đương với 40, nhưng 8 mang lại cho chúng ta khả năng lấy tên lớp phù hợp cho từng mô hình triển khai đặc điểmHàm cập nhậtOrThrow 6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Trong dòng đầu tiên, lệnh gọi 42 chỉ ra rằng chúng ta muốn tương tác với chính đặc điểm đó, sau đó chúng ta đang xâu chuỗi hàm 2 với nó, có nghĩa là chúng ta đang gọi hàm đã xác định trước đóSau đó, chúng tôi đang xâu chuỗi vào hàm 2 gọi hàm 2, chuyển ID của bản ghi mà chúng tôi muốn truy xuất từ cơ sở dữ liệu. Khi bản ghi được tìm thấy và một mô hình đã điền được trả về, chúng tôi sẽ xâu chuỗi lệnh gọi hàm 46 chuyển dữ liệu mà chúng tôi muốn cập nhậtSau đó, chúng tôi có một điều kiện mà chúng tôi đang gọi 1, hàm này trả về đúng hoặc sai để cho chúng tôi biết nếu dữ liệu được cập nhật thành công. Trong trường hợp nó trả về false, một ngoại lệ tùy chỉnh sẽ bị némCuối cùng, sau khi cập nhật thành công, chúng tôi trả về mô hình đã cập nhật ngoại lệ tùy chỉnhỞ đây chúng tôi đang sử dụng cùng một kỹ thuật được giải thích trong bài đăng Laravel custom exceptions. Nếu bạn chưa đọc bài đăng, hãy dành một chút thời gian để đọc nó, để bạn có thể hiểu được ý nghĩa của phần này 3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở định nghĩa lớp, chúng tôi đang mở rộng 48, một lớp trừu tượng được sử dụng để thực thi việc triển khai các hàm 49, 10 và 11 và đảm bảo rằng Laravel sẽ có thể tự động xử lý ngoại lệ nàyTheo định nghĩa lớp, chúng ta có hàm tạo nơi quảng cáo thuộc tính đang được sử dụng để làm cho mã sạch hơn. Là tham số, chúng tôi có 12, chứa ID của bản ghi mà chúng tôi muốn truy vấn từ cơ sở dữ liệu tại Đặc điểm của chúng tôi và 13 nơi có thể tìm thấy tên lớp đầy đủ của mô hìnhBên trong hàm tạo, chúng tôi đang trích xuất tên mô hình ra khỏi tên lớp đầy đủ, tên đầy đủ sẽ giống như 14 và chúng tôi chỉ muốn phần Người dùng. Điều này đang được thực hiện, vì vậy chúng tôi có thể tự động hóa thông báo lỗi thành một thứ gì đó có ý nghĩa đối với người tương tác với API của chúng tôi trong trường hợp không thể tìm thấy bản ghi của một ID nhất địnhTiếp theo, chúng tôi triển khai chức năng 49 nơi chúng tôi đang trả về trạng thái 400 HTTPSau đó, chúng ta có hàm 10, trong đó chúng ta đang trả về một chuỗi đã dịch cho biết giải pháp khả thi cho lỗi. Trong trường hợp bạn đang thắc mắc, chuỗi đã dịch sẽ được đánh giá là 17Cuối cùng, chúng ta có hàm 11 trong đó lỗi đã xảy ra được chỉ định, như trong hàm trước chúng ta đang sử dụng một chuỗi đã dịch, nhưng khác với trước đây, ở đây chúng ta đang sử dụng tính năng thay thế tham số từ trans()Cách tiếp cận này đã được chọn để cung cấp cho chúng tôi thông báo lỗi động với ngữ cảnh. Ở đây, chuỗi đã dịch sẽ được ước tính thành thứ gì đó như 19Với cấu trúc này, nếu mô hình đích thay đổi, thông báo do ngoại lệ phát ra cũng sẽ thay đổi do tên mô hình được xác định động Như một ví dụ phụ, hãy tưởng tượng rằng bây giờ, bạn đang tương tác với một mô hình Bán hàng, trong trường hợp này, thông báo sẽ tự động thay đổi thành 60Sử dụng sự trừu tượngBây giờ, phần trừu tượng hóa của chúng tôi đã được xác định và chúng tôi đảm bảo rằng việc xử lý lỗi đã được thực hiện, chúng tôi cần sử dụng Đặc điểm UpdateOrThrow của mình trong các mô hình mà chúng tôi muốn có hành vi cập nhật đơn giản hóa này Làm cách nào để cập nhật dữ liệu trong Laravel?Chúng tôi có thể cập nhật các bản ghi bằng cách sử dụng mặt tiền DB với phương thức cập nhật . Cú pháp của phương thức cập nhật như trong bảng sau. Chạy một câu lệnh cập nhật đối với cơ sở dữ liệu.
Làm cách nào để thực hiện thao tác cập nhật trong Laravel?Thao tác cập nhật . chỉnh sửa chức năng công khai ($ id) $crud= Thô. tìm($id); quay lại chế độ xem ('chỉnh sửa', thu gọn ('crud')); Làm cách nào để tạo hoặc cập nhật trong Laravel?Nói chung, trong Laravel, chúng tôi sử dụng phương thức create() để tạo dữ liệu mới và phương thức update() để cập nhật dữ liệu của chúng tôi vào cơ sở dữ liệu. But there is a way to use both methods at a time like when it needs to create new data it uses the create() method and to update the data it uses the update().
Làm cách nào để cập nhật người dùng trong Laravel?Làm cách nào để cập nhật tên và email của người dùng trong Laravel? . Chuyển đến tài nguyên/lượt xem/trang chủ. lưỡi. php và viết đoạn mã sau. - Sau đó, Xác định chức năng của profileupdate bên trong app/Http/Controllers/HomeController. . Bây giờ, Đi đến tuyến đường/web. php và xác định tất cả các tuyến đường này và viết mã sau đây |