[英]Retrieve records from laravel model
我有一個Laravel應用程序,我有一個帶有780950個寄存器的數據庫表,因此,當我雄辯地檢索它時,它要花很長時間,然后給出超出時間的錯誤。 有沒有辦法檢索例如前30條記錄? 我嘗試了這個:
mymodel::all()->take(30)->get();
但是是一樣的。 所以,我只說了:
mymodel::where('id','<','30')->get();
它可以工作,但這不是我想要的,因為我想分頁並顯示所有記錄。 因此,我知道記錄很多,但是如果我可以檢索到前30條記錄,然后使用ajax檢索另外30條記錄。 那么在Laravel 5.3中實現這一目標的最佳,更優雅的方法是什么?
當您執行Model::all()->take(30)->get();
,實際上是在說“檢索所有數據庫記錄,然后給我前30條記錄”。 因此,您將僅加載前30條記錄就加載全部800,000條記錄。
如果您想要分頁,則實際要做的是:
$models = Model::paginate($perPage);
paginate()
方法將根據URL中的查詢字符串自動確定當前頁面,並給您返回一個對象,您可以將其傳遞給視圖以進行分頁。
<div class="container">
@foreach ($models as $model)
{{ $model->name }}
@endforeach
</div>
{{ $models->links() }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.