Laravel-作为URL段的类别,类别属于许多

时间:2019-08-13 11:57:17

标签: laravel categories

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

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

实际上:

  • 用户只有一种专长

  • 专业有很多类别

  • 类别属于许多专业

我认为我必须创建一个像category_speciality这样的数据透视表,如Laravel文档中针对多对多关系所述。 但是后来我不知道如何使用专业类别来构建专用的查询和网址。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

对于URL,您可以执行以下操作:

web.php

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

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

PostController

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'));
}

假设您在“帖子”表中有specialty_id,并且您建立了正确的关系。

这只是一个例子。