我正在开发一个laravel 5.3的项目。每一件事都很好,但我在一个视图中遇到了一个分页问题。我想,我在代码中遗漏了一些东西而无法发现我错过的东西。
我有posts
表和categories
表以及另一个表,用于存储其名称为post_n_category
的帖子和类别的关系。下图显示post_n_category
表的结构。
我编写了方法来从模型中的数据库中获取数据。
public static function pids($id)
{
$posts = self::select('pid')->where('sid', $id)->orderby('id', 'desc')->paginate(5);
if($posts != null)
{
return $posts;
}
else
{
return "";
}
}
和follwing是返回视图的控制器方法。
public function category()
{
return view('category');
}
最后是视图代码。
@foreach(\App\PnC::pids(9) as $pid)
{{ $pid->pid }}<br />
@endforeach
<hr />
{{ \App\PnC::pids(9)->links() }}
此代码工作正常,pids正确显示,并且分页按钮是可见的。但问题是,当我点击第2页时,网址正确更改但内容与第一页保持一致,并且分页链接的活动链接根据内容保持为1。所以简而言之,问题就是点击地址栏中的页码网址正确但是分页链接的内容和活动链接仍然与第一页相同..所以任何帮助都请...
答案 0 :(得分:0)
我可以建议一种不同的方法。 在您的控制器中使用
public function category()
{
$posts = Posts::select('pid')->where('sid', $id)->orderby('id', 'desc')->paginate(5);
return view('category', compact ('posts'));
}
在你看来
@foreach($posts as $post)
{{ $post->pid }}<br />
@endforeach
{{ $posts->links() }}
使用分页时最好在控制器中调用函数,因为laravel默认提供分页。 您可以找到参考here