Một số mẹo khi sử dụng Laravel

Tram Ho

1. updateOrCreate.

  • Nếu bạn cần kiểm tra xem bản ghi có tồn tại hay không, sau đó cập nhật nó hoặc tạo bản ghi mới, bạn có thể thực hiện nó trong một câu lệnh updateOrCreate ()

2. Eloquent relationships

  • Bạn có thể chỉ định orderBy () trực tiếp trên các mối quan hệ Eloquent của mình.

3. Eloquent method latest/oldest.

  • Thay vì sử dụng order by created_at desc/asc thì có thể sử dụng Eloquent method latest/oldest.

4. Query Scopes

  • Bạn có thể kết hợp và query scopes truy vấn trong Eloquent, sử dụng nhiều scope trong một truy vấn.

5. Auth

  • Nếu bạn muốn nhận được ID của người dùng đã đăng nhập.

6. Foreach loop

  • Trong Blade, bên trong vòng lặp @foreach, với biến $loop, bạn có thể kiểm tra xem phần tử hiện tại là đầu tiên, cuối cùng hay số của nó trong iteration.

  • Để foreach các phần tử trong mảng và in ra STT của các item.

  • Thay vì viết {{ $index + 1 }} thì có thể dùng biến $loop như sau {{ $loop->iteration }}
  • Biến $loop cũng chứa nhiều thuộc tính hữu ích khác. Đọc thêm

7. Accessors & Mutators

  • Accessors: Định nghĩa method để get dữ liệu mong muốn dựa trên các thuộc tính của model VD:
  • Để hiển thị full name thì bạn phải cộng chuỗi như sau.

  • Bạn có thể định nghĩa method để sử lý việc này.

  • Để lấy ra full name thì chỉ cần gọi

  • Mutators: Sẽ set giá trị của model trước khi lưu vào database

8. Where attribute

  • Bình thường chúng ta khi sử dụng where sẽ viết như sau:

  • Nhưng có thể viết ngắn gọn hơn.

  • Bạn có thể where bất trường trường nào tương tự như trên VD: role_id -> whereRoleId, status -> whereStatus

9. Soft-deletes

  • Hãy cẩn thận với các thao tác soft delete và query builder. Đừng quên rằng soft delete sẽ loại trừ các mục khi bạn sử dụng Eloquent, nhưng sẽ không hoạt động nếu bạn sử dụng query builder.

10. CONST

  • Để làm cho code của bạn dễ đọc hơn đối với người khác, thay vì sử dụng các số được hard code cho một số giá trị, hãy đặt chúng thành các hằng số connst với tên rõ ràng.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo