laravel - Laravel 路线不适用于 slug
问题描述
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>
解决方案
您必须指定在路由函数中使用 slug 作为 id:
{{route('task.show', $task->slug)}}
推荐阅读
- javascript - 使用 Yelp API 从 json 响应中获取数据
- phpstorm - 仅在 PhpStorm 中发表评论
- angular - 如何在值更改之前实例化对象数组的 Observable?
- c# - .NET Core 2.1 应用程序从 VS2017 发布但不是命令行?
- android - 在 Android Studio 中检查密钥库文件
- python - Django REST Framework:验证前转换值
- javascript - Promise.all 错误处理——让一个 Promise 的结果可以在另一个 Promise 的 catch 中访问?
- oracle - 在 Oracle 上将 VARCHAR 转换为带小数的 NUMBER
- arduino - 伺服没有按预期响应
- streaming - 突发模式与完全流式 XSLT