首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类别slug + post slug Laravel雄辩

类别slug + post slug Laravel雄辩
EN

Stack Overflow用户
提问于 2021-07-12 17:21:31
回答 1查看 23关注 0票数 0

我有一个博客路线,我想用category_slug展示文章。

代码语言:javascript
复制
Route::get('/blog/{category_slug}/{slug}', [App\Http\Controllers\BlogController::class, 'index'])
       ->where('category_slug', '[\-_A-Za-z]+')
       ->where('slug', '[\-_A-Za-z]+');


public function categories_blog()
{
    return $this->belongsTo(CategoriesBlog::class, 'category_id');
}

public function blogs()
{
    return $this->hasMany(Blog::class);
}

有了这种雄辩的关系,就可以很好地工作:

示例:www.mysite.com/blog/first_article

代码语言:javascript
复制
public function index($category_slug, $slug)
{

$blogs = Blog::with('categories_blog')
               ->where('slug', '=', $slug)
               ->first();

}

使用这种雄辩的关系不起作用:

示例:www.mysite.com/blog/accessories/first_article

代码语言:javascript
复制
public function index($category_slug, $slug)
{

$blogs = Blog::with('categories_blog')
             ->where('category_slug', '=', $category_slug)
             ->where('slug', '=', $slug)
             ->first();  

}

无法识别与“类别博客”的关系:

代码语言:javascript
复制
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category_slug' in 'where clause' (SQL: select * from `blogs` where `category_slug` = accessories `slug` = first_article limit 1)

我该如何修复它,或者有没有最好的方法来获得它?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 17:23:44

使用whereHas

代码语言:javascript
复制
$blogs = Blog::with('categories_blog')->whereHas('categories_blog',function ($query)use($category_slug){
           $query ->where('category_slug', $category_slug);
       })
          ->where('slug',$slug)
          ->first();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68344861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档