0

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);
}
4

0 に答える 0