gpt4 book ai didi

laravel - 仅显示自己的帖子和 laravel 中管理员的所有帖子

转载 作者:行者123 更新时间:2023-12-02 17:19:53 25 4
gpt4 key购买 nike

我试图显示所有添加到管理员的帖子,并且只显示登录用户的帖子。

这就是我在我的 Controller 中尝试的

public function index(Request $request)
{
$items = Item::where('author_id', Auth::user()->id)->orderBy('id','DESC')->with('author')->paginate(5);
return view('items.index',compact('items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}

在模型中我有这种关系。元素型号:

public function author()
{
return $this->belongsTo(User::class);
}

用户模型

public function posts()
{
return $this->hasMany(Item::class, 'author_id');
}

如果管理员已登录以便能够查看所有帖子,我该如何做到这一点?我正在使用 Entrust ACL,现在不明白如何更改查询

最佳答案

Just check role and set condition. no need to write same query twice.

public function index(Request $request)
{
$query = Item::orderBy('id','DESC')->with('author');
if(!Auth::user()->hasRole('admin')){
$query=$query->where('author_id', Auth::user()->id);
}
$items = $query->paginate(5);
return view('items.index',compact('items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}

关于laravel - 仅显示自己的帖子和 laravel 中管理员的所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com