Cách đặt truy vấn offset trong Model của ThinkPHP - xem cung mệnh

/imgposts/7ia8vki9.jpg

Ban đầu, tôi đã không tham khảo kỹ tài liệu của ThinkPHP và nghĩ rằng cách viết offset trong ThinkPHP sẽ giống như trong Laravel. Do đó, tôi đã viết đoạn mã như sau:

$articles = M("article")->where('status=1')
      ->order('id desc')
      ->offset($offset)
      ->limit($limit)
      ->select();

Tuy nhiên, khi thực thi đoạn mã trên, hệ thống đã báo lỗi:

Phương thức offset không tồn tại trong lớp Think\Model!

Sau khi kiểm tra lại tài liệu, tôi nhận ra rằng cách viết đúng trong ThinkPHP là sử dụng hàm limit() với cú pháp khác biệt so với Laravel. Cụ thể, bạn cần truyền hai tham số vào limit(), trong đó tham số đầu tiên là giá trị offset và tham số thứ hai là số lượng bản ghi cần lấy.

Ví dụ:

$articles = M("article")->where('status=1')
      ->order('id desc')
      ->limit($offset, $limit)
      ->select();

Như vậy, để áp dụng phân trang hoặc cá độ bóng đá bỏ qua một số bản ghi nhất định trong ThinkPHP, bạn chỉ cần sử dụng cú pháp này thay vì cố gắng gọi phương thức offset() không tồn tại.

Lưu ý quan trọng: Hãy luôn tham khảo tài liệu chính thức của framework trước khi triển khai các tính năng để tránh những lỗi không đáng có!