beat.php
私はEloquentを拡張し、機能を持つモデルを持っています
public function posts()
{
return $this->belongsToMany('Post')->withPivot('deleted_at')->orderBy('created_at', 'desc');
}
コントローラーで、次のように Beat を取得します。
$beat = Beat::where('user_id', $data['owner']->id)->first();
ビューでは、次のように投稿をループします。
@foreach ($beat->posts as $post)
...
@endforeach
問題は、一部の「Beats」には何百もの投稿があり、PHP がメモリ不足になり、ブラウザがハングすることです。返される結果の数を制限するにはどうすればよいですか?
私はすでに試しました:
public function posts($limit)
{
return $this->belongsToMany('Post')->withPivot('deleted_at')->orderBy('created_at', 'desc')->take($limit);
}
そして、次のようにループしました:
@foreach ($beat->posts(100) as $post)
...
@endforeach
しかし、ループは何も表示しませんでした。興味深いことに、$limit
モデルにハードコーディングしてパラメーターを削除すると機能します。
public function posts()
{
return $this->belongsToMany('Post')->withPivot('deleted_at')->orderBy('created_at', 'desc')->take(100);
}