【问题标题】:Laravel routes don't work with slugsLaravel 路线不适用于 slug
【发布时间】:2018-05-13 20:57:58
【问题描述】:

route() 函数不会使用 slug 生成 url

路由/web.php

Route::get('/tasks/{task}', 'TasksController@show')->name('task.show');

任务模型

public function getRouteKeyName()
{
    return 'slug';
}

任务控制器

public function show(Tasks $task){
    $task_full = Tasks::with('tags')->find($task->id);
    return view('tasks.show', ['task'=>$task_full]);
}

在我看来,最终 route() 函数以我没想到的方式工作。它会生成这样的 url - laravel.test/tasks/3。 我希望它使用蛞蝓。

<a href="{{route('task.show', ['task'=>$task])}}"><li>{{$task->body}}</li></a>

【问题讨论】:

标签: laravel laravel-5


【解决方案1】:

您必须在路由函数中指定使用 slug 作为 id:

{{route('task.show', $task->slug)}}

【讨论】:

  • 我使用模型绑定功能,所以我必须传递模型,而不是 slug 或 id。
  • 我发现我的错误...我只是在错误的视图中编辑 route() 方法。哎呀!
猜你喜欢
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 2017-04-20
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多