Laksanakan penapis dan penomboran menggunakan Laravel Eloquent
P粉010967136
P粉010967136 2023-11-12 18:42:35
0
1
675

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 failCustomerController:

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.

P粉010967136
P粉010967136

membalas semua (1)
P粉268284930

Masalah utama anda ialah baris ini:

$customers = Customer::all();

all()方法立即将所有customers记录作为Collection返回,该集合没有->paginate( )Kaedah:https://laravel.com/docs/9.x/collections#available-methods.

Untuk memilih pautan, gunakan klausa->query()方法或->when():

Gunakan::query()代替::all():

$itemPerPage = $request->query('per_page'); // SQL Query $customers = Customer::query(); // Filter data if (!empty($request->name)) { $customers = $customers->where('name', '=', $request->name); } // Return the result as JSON return new CustomerCollection($customers->paginate($itemPerPage));

Gunakan klausa->when():

$itemPerPage = $request->query('per_page'); $customers = Customer::when(!empty($request->name), function ($query) use ($request) { $query->where('name', '=', $request->name); }); return new CustomerCollection($customers->paginate($itemPerPage));
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!