Route 使用 Slug,但功能需要 id
Route uses Slug, but id needed for function
我正在使用 slugs 在我的站点中导航,但我需要将 id 连接到 slug 才能实现功能。
函数:
public function categories(Request $request, $slug)
{
$categories = Category::where('slug', $slug)->get();
$announcements = Announcement::where('category_id', $request->id)->paginate(5);
$category_lists = Category::all();
return view('announcements.index', compact('announcements', 'categories', 'category_lists'));
}
这是我需要获取ID的函数。 $request->id 不工作,因为我的 $request->id returns 'null'。有什么方法可以获取连接到 slug/DB 行的 ID?
如果需要更多信息,请告诉我。
我试过用
得到它
$announcements = Announcement::where('category_id', Category::get(id))->paginate(5);
类似的事情,没有任何效果。
将您的代码更改为
$category = Category::where('slug', $slug)->first();
$announcements = Announcement::where('category_id', $category->id)->paginate(5);
如果一个类别有一个独特的 slug,只需使用 first()
,而不是 get()
,您可以获得类别对象并使用它。
我想你覆盖了 Category
模型中的 getRouteKeyName
:
public function getRouteKeyName()
{
return 'slug';
}
然后你可以通过路由模型绑定得到这样的Category
:
public function categories(Request $request, Category $category)
{
$announcements = Announcement::where('category_id', $category->id)->paginate(5);
$category_lists = Category::all();
return view('announcements.index', compact('announcements', 'category', 'category_lists'));
}
我正在使用 slugs 在我的站点中导航,但我需要将 id 连接到 slug 才能实现功能。
函数:
public function categories(Request $request, $slug)
{
$categories = Category::where('slug', $slug)->get();
$announcements = Announcement::where('category_id', $request->id)->paginate(5);
$category_lists = Category::all();
return view('announcements.index', compact('announcements', 'categories', 'category_lists'));
}
这是我需要获取ID的函数。 $request->id 不工作,因为我的 $request->id returns 'null'。有什么方法可以获取连接到 slug/DB 行的 ID?
如果需要更多信息,请告诉我。
我试过用
得到它$announcements = Announcement::where('category_id', Category::get(id))->paginate(5);
类似的事情,没有任何效果。
将您的代码更改为
$category = Category::where('slug', $slug)->first();
$announcements = Announcement::where('category_id', $category->id)->paginate(5);
如果一个类别有一个独特的 slug,只需使用 first()
,而不是 get()
,您可以获得类别对象并使用它。
我想你覆盖了 Category
模型中的 getRouteKeyName
:
public function getRouteKeyName()
{
return 'slug';
}
然后你可以通过路由模型绑定得到这样的Category
:
public function categories(Request $request, Category $category)
{
$announcements = Announcement::where('category_id', $category->id)->paginate(5);
$category_lists = Category::all();
return view('announcements.index', compact('announcements', 'category', 'category_lists'));
}