我正在用示例代码学习Laravel9路由,我在更改URL时遇到问题。我想更改URL如下
当前我可以访问这个URL
127.0.0.01:8000/学生/
和
127.0.0.01:8000/学生/创建
但我想这样改变
127.0.0.01:8000/fun_student/
和
127.0.0.01:8000 fun_student/创建
我是这样写的
web.php
Route::prefix('fun_fun_student')->group(function (){
Route::resource('students', StudentController::class);
});
但是我不能显示为这个URL。有人能教我正确的代码吗?
更新我试着
Route::resource('fun', StudentController::class);
那么我当前的路线列表
GET|HEAD fun ............................. fun.index › StudentController@index
POST fun ............................. fun.store › StudentController@store
GET|HEAD fun/create .................... fun.create › StudentController@create
GET|HEAD fun/{fun} ......................... fun.show › StudentController@show
PUT|PATCH fun/{fun} ..................... fun.update › StudentController@update
DELETE fun/{fun} ................... fun.destroy › StudentController@destroy
GET|HEAD fun/{fun}/edit .................... fun.edit › StudentController@edit
更改资源的前缀。您必须更改资源名称。
,
Route::resource('fun_student', StudentController::class);
那么你可以这样使用路由:
,
<a href="{{ route('fun_student.index') }}">Students</a>
该路由应该输出如下URL:
http://127.0.0.01:8000/fun_student
资源更改后,请记住执行以下命令清除缓存:
php artisan route:clear
// or
php artisan optimize:clear
还可以在项目的其他地方将route('students.xxx')
更改为route('fun_student.xxx')
。
我建议你通过Laravel文档了解更多信息。
为了补充Dasun Tharanga的答案,如果你正在使用路由模型绑定,例如:
/**
* Display the specified resource.
*/
public function show(Student $student)
{
//...
}
必须将参数的名称更改为:
public function show(Student $fun_student)
{
//...
}
或你必须命名资源路由参数
Route::resource('fun_student', StudentController::class)->parameters([
'fun_student' => 'student'
]);