我使用子弹在我的网站中导航,但是我需要将ID连接到子弹才能使用。
功能:
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返回'null'。有没有办法获取连接到子弹/数据库行的ID?
如果需要更多信息,请告诉我。
我尝试用它来
$announcements = Announcement::where('category_id', Category::get(id))->paginate(5);
类似的东西,什么都不起作用。
答案 0 :(得分:1)
将代码更改为
$category = Category::where('slug', $slug)->first();
$announcements = Announcement::where('category_id', $category->id)->paginate(5);
如果一个类别有一个唯一的子弹,只需使用first()
而不是get()
,就可以获取类别对象并使用它。
答案 1 :(得分:1)
我想您会覆盖getRouteKeyName
模型中的Category
:
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'));
}