環境:
Laravel@9.52.4
事象:
Laravel でforPage() を使ってPagination を実装したがページによってオブジェクトが返ってくる。
↓↓正常な挙動(配列が返る)
↓↓異常な挙動(オブジェクトが返る)
↑↑(indexがfilter()により抜けがある)
solution)
同じロジックでpaginate していたがfilter処理をかましていたので異常な挙動な時はfilter が効いていた。collection->filter() で返る値も配列だが index が抜けているとオブジェクトとしてレスポンスを返してしまう。
したがってindex をつめる必要がある。
pagenate処理中にfilter()関数を使うなら常に結果の$filteredに
$filtered->values() でindexを詰める必要がある。