Saya cuba mencipta API yang akan mengembalikan semua rekod pelanggan daripada pangkalan data. Tetapi ini menyediakan keupayaan paging dan penapisan. ,
Fungsi penapis ialah parameter pertanyaan pilihan. Jadi ia tidak perlu dimasukkan dalam parameter pertanyaan.
Tetapi saya menghadapi masalah melakukan ini.
Ini ialah kaedah pengindeksan dalam fail CustomerController
:
public function index(Request $request) { // Get how many item per page $itemPerPage = $request->query('per_page'); // SQL Query $customers = Customer::all(); // Filter data if (!empty($request->name)) { $customers = $customers->where('name', '=', $request->name); } // Return the result as JSON return new CustomerCollection($customers->paginate($itemPerPage)); }
Atau adakah cara yang lebih baik untuk menggabungkan fungsi penapisan pilihan dengan penomboran?
Terima kasih.
Masalah utama anda ialah baris ini:
all()
方法立即将所有customers
记录作为Collection
返回,该集合没有->paginate( )
Kaedah: https://laravel.com/docs/9.x/collections#available-methods.Untuk memilih pautan, gunakan klausa
->query()
方法或->when()
:Gunakan
::query()
代替::all()
:Gunakan klausa
->when()
: