【发布时间】:2020-08-19 09:42:11
【问题描述】:
我的口才有点问题。我有 3 张桌子。 Users、phrases 和 phrase_user。
短语用户包含列:id, phrase_id, user_id
例如,我需要选择带有数据透视表的短语。
此操作与 SQL 将是这样的......
SELECT phrase FROM phrases
LEFT JOIN phrase_user ON phrases.id = phrase_user.phrase_id
LEFT JOIN users ON phrase_user.user_id = $userId
这是我在控制器中的索引函数
$phrases = DB::table('phrases')->orderBy('id','desc')->Paginate(5);
$user = Auth::user();
return view('pages.phrases.index')->with(['phrases' => $phrases, 'user' => $user]);
我也在模型中编写了这些函数... 短语模型:
public function users()
{
return $this->belongsToMany('App\User')->withTimestamps();
}
用户模型:
public function phrases()
{
return $this->belongsToMany('App\Phrase')->withTimestamps();
}
在这种情况下,分页器无法正常工作,因为$phrases = DB::table('phrases')->orderBy('id','desc')->Paginate(5); 有一些问题..
总结:我只需要在短语页面中显示我的短语。每个用户都必须有他们的短语。
【问题讨论】:
-
我想你可以这样做
$user->phrases()->>orderBy('id','desc')->paginate()你以前试过这样做吗? -
在这种情况下如何调用分页?而不是 {{ $phrases->links() }} 这个?
-
@lukatatrishvili 你不需要打电话给
links()。如果您希望分页中的项目没有所有分页额外属性,那么您应该能够将其发送到您的视图$phrases >items();这只是项目的数组。 -
非常感谢。你真的帮了我...
标签: php sql database laravel eloquent