【发布时间】:2020-11-15 20:02:32
【问题描述】:
嗨,今天我在使用 laravel 框架时遇到了这个问题。我想为 Category 模型创建动态 SEO 链接,但遇到了路由参数问题。
这是我在web.php的路线:
Route::get('transport/{category?}', 'JobController@index');
这是路由重定向到的方法:
public function index(Category $category = null)
{
if ($category) {
$jobs = Job::whereCategoryId($category->id)->orderBy('id', 'desc')->paginate(10);
} else {
$jobs = Job::orderBy('id', 'desc')->paginate(10);
}
return view('jobs')->with([
'jobs' => $jobs,
'categories' => Category::all(),
'current_category' => $category,
]);
}
Category 表如下所示:
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('token');
$table->longText('description');
$table->timestamps();
});
Job 与 category 相关:
$table->integer('category_id');
/transport/furniture 之类的路由有效,但/transport/other-vehicles 之类的路由无效,我收到 404 错误。
【问题讨论】:
-
你能在这里分享类别模型吗?您是否在模型中的
getRouteKeyName中设置了默认键名? -
您是否设置了路由模型绑定以使用 slug?
-
@Aashishgaba 你救了我的命,谢谢你提供的线索。这是
public function getRouteKeyName() { return 'name'; }之前的类别模型,我将其更改为public function getRouteKeyName() { return 'token'; }并且它有效! @KurtFriars 也感谢您的回复
标签: laravel parameters routes http-status-code-404 hyphen