2017-07-04 3 views
0

私はlaravel 5.2でプロジェクトを開発しています。私は問題がある、私のPostControllerでは、私は引数を受け入れるis_paginated、それは整数です。 0の場合、すべての投稿を照会することを意味します。 1の場合は、ページ区切りクエリを使用することを意味します。この議論の他にも、私は多くの追加議論を受け入れ、その価値に応じて、私は問合せに対する制約を加えるかどうかを決めます。たとえば、ユーザーはadd_timeに特定の日に生成された投稿を照会することができます。だから私のコントローラでは、私が今書き:Laravel 5.2 paginateクエリとページングクエリの両方を使用しない

public function getPosts(Request $request){ 
$isPaginated = $request->input('is_paginates'); 
if($isPaginated){ 
    /* 
    *According to additional arguments to add query constraints or not, then 
    *use paginate method. 
    */ 
    .....->paginate(10); 
}else{ 
    /* 
    *According to additional arguments to add query constraints or not, then 
    *use get method. 
    */ 
    ......->get(); 
} 
} 

だから、あなたが見ることができる、私は二回add constraintsコードを書いた、そして追加するには多くの制約がある場合、それは非常に肥大化に見えます。それで、これをやり遂げる他の方法はありますか?

+0

あなたは '$要求 - >入力( 'is_paginates')にタイプミスがあり;' –

答えて

0

あなたがここに連鎖する方法の驚異を使用することができます。

var $a = \App\Class::where("c",1);   
if($offset = $request->input("offset")){ 
    $a = $a->skip($offset); 
} 
if($limit = $request->input("limit")){ 
    $a = $a->take($limit); 
} 
if($request->input("is_paginated")){ 
    $a = $a->paginate(10); 
} 
$a_vals = $a->get(); 
関連する問題