Laravelの機能で、
・eacger loadしてくれるメソッドのwith
・ページネーションしてくれるメソッドのpaginate
というものがあり、大変便利ではあると思うのですが,
withやpaginateを使う、または使わないというのを引数で指定するというのはメソッドの作りとして良いのでしょうか?
例えば、
Postという投稿があるとし
投稿一覧を取得できるような以下のようなメソッドを作成するということです。
public function getPosts($with = [], $isPaginate = false) { $posts = Post::with($with); if($isPaginate){ $posts->paginate(10) } return $posts->get(); }
このメソッドは
このように呼び出すことで
$this->getPosts(['comments'], true);
投稿とそれに紐づくコメントを取得し、ページネーションの形式で渡してくれます
また、このように呼び出すことで
$this->getPosts(['user'], true);
postしたユーザーを一緒に取得でき、
また以下で
$this->getPosts();
投稿一覧のcollectionを返してくれます。
一見便利そうなのですが、メソッドの作りとして
いかがでしょうか?
懸念するのは、
CollectionかLengthAwarePaginatorのオブジェクトを返すかわからないため、戻り値のタイプヒンティングをかけないということです。
また、
特にこのようにやっている人が見当たらなかったので不安に思い質問しました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/11 12:58
2020/11/11 13:21 編集
2020/11/11 16:06 編集
2020/11/12 03:41