Rumah > Soal Jawab > teks badan
Saya menggunakan API PHP Google Drive dalam projek Laravel (v9.0). Berkenaan paging, saya harap ada proses berikut:
Masalah yang saya hadapi ialah apabila bahagian hadapan meminta halaman seterusnya (dalam contoh di bawah, pageToken
具有之前 Google Drive 调用中的 nextPageToken
值) ,Google 将引发错误:代码:400,消息:无效值,位置:pageToken
Di bawah ialah kod yang saya gunakan:
$pageToken = request()->input('pageToken'); $optParams = [ 'q' => '' . $parentQuery, 'pageSize' => $paginateSize, 'fields' => 'nextPageToken, files(id, name, parents)', ]; if ($pageToken) { $optParams['pageToken'] = $pageToken; } $response = $this->service->files->listFiles($optParams);
Walau bagaimanapun, jika saya mendapat semua halaman sebelum kembali ke bahagian belakang, ia nampaknya berkesan:
$optParams = [ 'q' => '' . $parentQuery, 'pageSize' => $paginateSize, 'fields' => 'nextPageToken, files(id, name, parents)', ]; $files = []; do { $results = $this->service->files->listFiles($optParams); $files = array_merge($files, $results->getFiles()); $pageToken = $results->getNextPageToken(); if ($pageToken) { $optParams['pageToken'] = $pageToken; } } while ($pageToken);
Saya mungkin salah faham cara penomboran digunakan dalam API Google Drive, tetapi adakah terdapat cara untuk menomborkan kandungan seperti dalam contoh pertama saya?
P粉5461383442023-09-07 11:36:00
Gunakan fungsi isset dan kosong untuk menyemak sama ada nilai pageToken adalah sah
$pageToken = request()->input('pageToken'); $optParams = [ 'q' => '' . $parentQuery, 'pageSize' => $paginateSize, 'fields' => 'nextPageToken, files(id, name, parents)', ]; if (isset($pageToken) && !empty($pageToken)) { $optParams['pageToken'] = $pageToken; } $response = $this->service->files->listFiles($optParams);