20/07/2019, 09:49

Tìm hiểu thêm về Laravel – Laravel còn giấu diếm chúng ta những gì?

Mặc dù đã được đào bới bóc phốt khá là nhiều, nhưng bên trong Laravel vẫn còn rất nhiều những điều nhỏ nhặt thú vị chưa được khám phá hoặc ít lập trình viên biết đến. Cùng tìm hiểu thêm về Laravel trong bài viết này các bạn nhé. Những thứ mà có lẽ chính những nhà phát triển của ...

Tìm hiểu thêm về Laravel

Mặc dù đã được đào bới bóc phốt khá là nhiều, nhưng bên trong Laravel vẫn còn rất nhiều những điều nhỏ nhặt thú vị chưa được khám phá hoặc ít lập trình viên biết đến. Cùng tìm hiểu thêm về Laravel trong bài viết này các bạn nhé.

Những thứ mà có lẽ chính những nhà phát triển của Laravel đã quên mất mình đã tạo ra nó nên không viết vào document.

Sau đây là một số mẹo thú vị mà mình đã tìm ra khi làm việc với Laravel và một số sưu tầm được trên Stackoverflow.

  10 tính năng hiệu quả có thể bạn không biết về Laravel Eloquent
  Tìm hiểu cách custom (chia nhỏ) Route trong Laravel

Cập nhật Timestamps trong Model Relation

Trick này cho phép bạn cập nhật lại timestamps của parent khi child model được update.

Ví dụ bạn có 2 model là Post và Comment được liên kết với nhau theo quan hệ cha con. Khi một Comment được update thì bạn cũng muốn đồng thời update thời gian đó vào updated_at cho parent Post chẳng hạn. Bạn có thể dễ dàng làm điều này bằng việc thêm thuộc tính touches vào child model.

Ví dụ:

Specify Eager Loading

Khi sử dụng Eager Loading một model, bạn có thể chỉ ra chính xác trường dữ liệu mà bạn cần lấy của model đó:

Authenticate một lần

Đôi khi bạn sẽ muốn thực hiện một lần xác thực duy nhất cho một cú call API, điển hình là các stateless API thì bạn sẽ muốn sử dụng phương thức Auth::once() đó.

Xem thêm API là gì.

Phương thức này sẽ vẫn cho phép request đó được thực hiện, vượt Middleware nhưng sẽ không lưu lại sessions hay cookies nào hết.

Redirect sang Controller khác kèm tham số

Bình thường bạn hay sử dụng phương thức redirect() để điều hướng URL hoặc routes, nhưng ngoài ra phương thức này còn có thể sử dụng để điều hướng dữ liệu qua Controller khác, thậm chí có thể gán thêm cả tham số vào

Bỏ qua Fatal Errors khi không tìm thấy Relation

Khi bạn gọi một Mode Relation mà nó không có tồn tại, và bạn không muốn ứng dụng bị crash tóe loe trước mắt khác hàng thì hãy sử dụng withDefault().

Biến $loop trong vòng lặp kép

Khi sử dụng foreach trong Blade Template, bạn có thể sử dụng biến $loop để truy xuất đến dữ liệu của vòng lặp cha:

dd() with Ease

Thay vì truyền giá trị vào dd() thì bạn có thể trỏ đến nó ngay tại kết thúc câu truy vấn:

Dùng hasMany để saveMany

Nếu trong một Model của bạn có hasMany() và bạn muốn lưu một lúc nhiều bản ghi vào model con thì bạn có thể sử dụng phương thức saveMany như dưới đây:

Specify Columns trong phương thức all()

Khi sử dụng Model::all(), bạn có thể chỉ ra chính xác những field mà bạn cần lấy trong phương thức này:

@auth trong Blade

Nếu trong Blade Template bạn cần một câu lệnh điều kiện để kiểm tra user đã đăng nhập chưa và hiển thị một tag ra cho user đó, thay vì sử dụng if else thì bạn có thể sử dụng @auth như này:

Xem trước Email mà không cần gửi

Nếu bạn đang sử dụng mailables để gửi emails, bạn có thể xem trước những emails này mà không cần gửi chúng đi, khá là tiện khi phải debug nhiều lần:

hasMany với điều kiện cụ thể

Trong Eloquent hasMany() bạn có thể lọc các bản ghi trả về với điều kiện các bản ghi child phải thỏa mãn một điều kiện gì đó.

Ví dụ: Lấy ra các Author có số lượng sách xuất bản lớn hơn 5 quyển:

Khôi phục nhiều bản ghi bị Soft Deleted cùng lúc

Khi sử dụng Soft Deletes, bạn có thể khôi phục nhiều bản ghi cùng lúc thõa mản điều kiện như này:

Migrate Columns kèm theo Time zones

Bạn có biết là migrations không chỉ có timestamps() mà còn có cả timestampsTz() để lưu lại luôn cả time zone nữa, nếu cần thiết đừng quên sử dụng nhé:

Kiểm tra xem một View có tồn tại hay không

Như title, đơn giản là làm như này:

Điều kiện ngày tháng trong Eloquent

Tron Eloquent bạn có thể thực hiện các mệnh đề điều kiện kiểm tra ngày tháng trực tiếp bằng các phương thức: whereDay(), whereDate(), whereTime(), whereMonth(), whereYear().

Sử dụng orderBy() ngay trong Eloquent Relationships

Bạn có thể trực tiếp sử dụng phương thức này ngay tại relation trong Model của bạn, các bản ghi con sau này được lấy ra sẽ tự động được order theo quy định:

Kết bài

Đó là một số những phương thức mình biết và học được trong quá trình làm việc với Laravel, một số hữu dụng, nhưng một số biết cho vui thôi vì nó cũng vô thưởng vô phạt.

Dù sao thì biết thêm cũng tốt mà nhở. Ở các phiên bản Laravel sau có lẽ nhà phát triển sẽ còn mang đến nhiều thứ tiện ích mạnh mẽ nữa cho các dev, hãy cùng đón chờ xem thế nào.

Cám ơn đã theo dõi bài viết!

Có thể bạn quan tâm:

  • Có gì mới trong bản phát hành Laravel 5.7?
  • Tại sao Laravel là framework tốt nhất 2019?
  • Cách sử dụng Laravel với Socket.IO

Xem thêm việc làm Software Developers trên TopDev

TopDev via viblo.asia

  Hướng dẫn chạy Laravel Tinker ngay trên trình duyệt
  Cách tối ưu code Laravel của bạn
0