Laravel - 类别为 url 段,类别属于许多

Laravel - categories as url segments, category belongs to many

我正在创建一个用户可以拥有一个专长的应用程序。 用户可以在后端创建分配给他专业的帖子,并且必须将其关联到一个类别。

我想知道当医生和律师可以使用相同类别时如何管理类别,而不显示类别相同的所有专业的所有帖子。

实际上:

我认为我必须创建一个像 category_speciality 这样的枢轴,如 Laravel 文档中针对多对多关系所解释的那样。 但是后来我不知道如何使用专业类别来构建专用查询和 url。

任何帮助都会很棒!

对于 URL 你可以这样做:

web.php

Route::get('/articles/{category}/{specialty}', [
    'uses' => 'PostController@index',
    'as' => 'posts.index'
]);

其中 {category}{specialty} 是其标题的唯一 slug 字段。这将导致例如example.com/articles/deep-sea/fishing.

后控制器

public function index($categorySlug, $specialtySlug)
{
    $specialty = Specialty::where('slug', '=', '$specialtySlug')->first();

    $posts = Posts::where('specialty_id', '=', $specialty->id)->get();

    return view('posts.index', compact('posts'));
}

这是假设您在帖子 table 中有 specialty_id 并且您已建立正确的关系。

这只是一个例子。