2016-11-09 10 views
2

laravelのページ設定を使用して左揃えを作成したいと思います。 左寄せでページネーションを作成する方法は?左揃えのLaravelページ設定

ここに私のコード:以前

$news = News::leftJoin('categories','news.category_id', '=', 'categories.id') 
     ->select('news.*' ,'categories.category') 
     ->get()->sortByDesc('created_at'); 

、私はそれleftjoinせず、$news = News::paginate(10);とその作品を使用しています。

とここに私のhtmlコードは、ページネーション

{{$news->links('vendor.pagination.pagination')}} 
+0

sortByDesc( )はget()の前にある必要があります –

答えて

3

のpaginate関数ではないget()によって返されるコレクションには、クエリビルダオブジェクト上で実行する必要があります作成します。

$news = News::leftJoin('categories','news.category_id', '=', 'categories.id') 
     ->select('news.*' ,'categories.category') 
     ->paginate(10); 

ソートの場合も同じです。 get()->sortByDesc()に電話すると、コレクションを取得してから、PHPを使用してコレクションをソートします。通常、クエリビルダでorderBy()を使用してSQLをソートするとします。

$news = News::leftJoin('categories','news.category_id', '=', 'categories.id') 
     ->select('news.*' ,'categories.category') 
     ->orderBy('created_at', 'DESC') 
     ->paginate(10); 
+0

ありがとうございました。 '不明なメソッドを呼び出して\ Database \ Query \ Builder :: links :: linksを呼び出すのにエラーが発生しました。私の見解で改ページを表示する方法は?私はこのコードを使用しています。{{$ news-> links()}} ' – rafitio

+0

ここで何かが見つからないと、' $ news'は依然としてpaginatorオブジェクトではなくクエリービルダーオブジェクトです。 – Devon

+0

ありがとうございました。 – rafitio

0

使用雄弁:例えば関係

News.phpモデルnews.blade.phpで

class News extends Model 
    { 
     protected $primaryKey = 'id'; 

     function withCategories() { 
     return $this->hasOne('App\Categories', 'id', 'category_id'); 
    } 

    public function list(){ 
     News::with('withCategories')->orderBy('created_at', 'DESC') 
    ->paginate(10); 
    } 
} 

(例えば)

<table> 
<tbody> 
@foreach ($news as $news) 
<tr> 
<th>{{ $news->id }}</th> 
<td>{{ $news->title }}</td> 
<td>{{ $news->withCategories->title }}</td> <!-- Category name--> 
</tr> 
@endforeach 
</tbody> 
</table> 
</div> 
関連する問題