Hướng dẫn dùng laravel findwhere trong PHP

Giới thiệu

Hôm nay tôi cùng các bạn đi tìm hiểu về viết Repository trong 1 dự án sử dụng Laravel Framework. Về định nghĩa và khái niệm chúng ta có thể xem qua ở đây . Trước đầu tiên ta cần thống nhất về cách thức viết Repository đã nhé. Theo 1 lời của 1 GL của Framgia thì trình tự để tạo Repository như sau:

  1. Tạo folder app/Repositories
  2. Tạo interface RepositoryInterface
  3. Tạo abstract class EloquentRepository implements RepositoryInterface, trong này viết hết tất cả các hàm xử lý làm việc với DB
  4. Tạo từng class repository extends EloquentRepository trong controller sử dụng repository thay vì gọi trực tiếp model. Khi làm việc với Repository các bạn luôn nhớ điều này. và quan trọng nhất là tất cả những gì làm việc với DB chỉ trong class EloquentRepository. Điều quan trọng nữa không thể thiếu trong Repository đó là khi sử dụng với Repository phải có sự tương đồng với Model của Laravel. Ai đã từng làm việc với Laravel có lẽ không hề có phàn nàn nào với Model của Laravel cả. Vậy nên chúng ta nên bảo toàn điều này khi dùng Repository. Do vậy đầu tiên chúng ta sẽ tìm hiểu Model trong Laravel hoạt động ra sao nhé.

Model trong Laravel

Về các hàm làm việc database ta có thể xem trực tiếp trên document của Laravel. Và trong bài này ta chủ yếu làm với các hàm cơ bản và dùng nhiều trong Model đó là:

  1. find[$id]
  2. create[array $attributes = array[]]
  3. update[array $values]
  4. where[string|Closure $column, string $operator = null, mixed $value = null]
  5. orWhere[string|Closure $column, string $operator = null, mixed $value = null]
  6. get[$columns = ['*']]
  7. list[$column, $key = null]
  8. count[]
  9. paginate[$limit = null]
  10. delete[$id]
  11. deleteAll[]

Ngoài ra 1 điểm nữa khi sử dụng trong Model đó là ta sử dụng các hàm liên tiếp nhau. Ví dụ như là: Tìm các người dùng có email là framgia.com và đang kích hoạt ta dùng như sau.

$users = User::where['status', true]->where['email', 'like', '%framgia.com%']->get[];

Tạo interface RepositoryInterface

Ở đây bạn cần tạo 1 interface cho Repository, ở đây sẽ list các function cơ bản làm việc trực tiếp với Model. Trong bài này sẽ là 9 function mà đã liệt kê ở trên:

Chủ Đề