gpt4 book ai didi

php - 如何优化具有外键的 Eloquent 查询

转载 作者:行者123 更新时间:2023-11-29 06:01:45 24 4
gpt4 key购买 nike

我有两个表 Tags 和 Admin ,我的标签表如下所示:

enter image description here

我的管理表如下所示:

enter image description here

admin表中的tag字段是一个外键,它引用了tags表中的ID。我想要做的是,使用特定的 tag 提取管理表中的记录, 现在当然是 tag在管理表中引用 idtags table 。

所以我编写了以下查询以从管理表中检索具有特定标签(例如 Javascript)的文章。

public function showTagListing($tag) {
$tagId = DB::table('tags')->where('tag', $tag)->first();
$tagBlogList = DB::table('admin')->where('tag', $tagId->id )->orderBy('created_at' , 'desc')->get();
return view('pages.taglisting', compact('tagBlogList', $tagBlogList));
}

我想我在这里多写了一些不需要的代码行来检索文章记录,我怎样才能把代码写成一行?我如何优化这些代码行?

最佳答案

public function showTagListing($tag)
{
$tagBlogList = DB::table('admin')
->join('tags', 'tags.id', '=', 'admin.tag')
->where('tags.tag', $tag)
->latest()
->select('admin.*')
->get();

return view('pages.taglisting', compact('tagBlogList'));
}

如果你想走 Eloquent 之路,那么你可以这样做。创建具有关系的适当模型。

public function showTagListing($tag)
{
$tagBlogList = Admin::whereHas('tags', function ($query) use($tag) {
$query->where('tag', $tag);
})
->latest()
->get();

return view('pages.taglisting', compact('tagBlogList'));
}

关于php - 如何优化具有外键的 Eloquent 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357455/

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