1. Giới thiệu
Bài viết này mình xin giới thiệu với các bạn 1 phương thức có sẵn của Laravel là find()
và các cách sử dụng find()
một cách hiệu quả nhất.
2. Các tham số của phương thức find()
Phương thức find($id, $columns = ['*'])
có 2 tham số và yêu cầu tối thiểu 1 tham số khi sử dụng:
$id
: Giá trị cột khóa chính primary_key bạn muốn tìm, có thể truyền 1 hoặc 1 mảng các giá trị.$columns
: Các cột muốn truy vấn (mặc định giá trị$columns
sẽ là tất cả các cột*
).
Giá trị trả về: nếu truyền $id
là 1 mảng thì kết quả sẽ là 1 mảng các bản ghi có khóa chính nằm trong mảng $id
và ngược lại thì chỉ trả về kết quả là 1 bản ghi có khóa chính bằng $id
.
Source code của phương thức find()
.
/**
* Find a model by its primary key.
*
* @param mixed $id
* @param array $columns
* @return IlluminateDatabaseEloquentModel|IlluminateDatabaseEloquentCollection|static[]|static|null
*/
public function find($id, $columns = ['*'])
{
if (is_array($id) || $id instanceof Arrayable) {
return $this->findMany($id, $columns);
}
return $this->whereKey($id)->first($columns);
}
Ví dụ:
$post = Post::find(1, ['id', 'title', 'url']);
$postIds = [1, 2, 3];
$posts = Post::find($postIds, ['id', 'title', 'url']);
3. Các phương thức khác liên quan
Ngoài phương thức find()
thì laravel còn cung cấp thêm các phương thức khác:
findMany($ids, $columns = ['*'])
: Tìm nhiều bản ghi theo mảng khóa chính$ids
.findOrFail($id, $columns = ['*'])
: Tìm bản ghi theo$id
nếu không tìm thấy thì trả về exception.findOrNew($id, $columns = ['*'])
: Tìm bản ghi theo$id
nếu không tìm thấy thì tạo mới 1 instance của model.
4. Tham khảo
- Laravel doc – Retrieving single models
- Laravel github – Builder
5. Lời kết
Trên website Laravel đã có đầy đủ hướng dẫn chi tiết về tất cả các phương thức mà laravel hỗ trợ ngoài ra còn có trang github source Laravel các bạn có thể đọc thêm cũng như thử nghiệm nhiều trường hợp để có thể sử dụng chúng một cách hiệu quả đúng trường hợp nhất nhé.
Hi vọng chia sẻ này sẽ giúp các bạn newbie 1 phần nào trong quá trình tìm hiểu về Laravel. Nếu thấy hữu ích hãy cho mình 1 vote 👍 để thêm nhiều người biết đến chia sẻ này nhé.
Mình là Công Thành cám ơn các bạn đa theo dõi bài viết của mình, nếu có câu hỏi nào vui lòng bình luận phía dưới 👇 nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Giới thiệu2. Các tham số của phương thức...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Giới thiệu2. Các tham số của phương thức find()3. Các phương thức khác liên quan4. Tham khảo5. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Giới thiệu2. Các tham số của phương thức find()3. Các phương thức khác liên quan4. Tham khảo5. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Giới thiệu2. Các tham số của phương thức find()3. Các phương thức khác liên quan4. Tham khảo5. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Giới thiệu2. Các tham số của phương thức find()3. Các phương thức khác liên quan4. Tham khảo5. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập...