有没有最简单的方法来改变'resouce'名称在web.php [Laravel9]

hfyxw5xn  于 2023-04-13  发布在  PHP
关注(0)|答案(2)|浏览(137)

我正在使用示例代码学习Laravel9路由,在更改URL时遇到问题。我想更改如下URL
目前我可以访问此URL
127.0.0.01:8000/student/

127.0.0.01:8000/student/create
但我想这样改变
127.0.0.01:8000/fun_student/

127.0.0.01:8000/fun_student/create
我是这样写的

web.php

Route::prefix('fun_fun_student')->group(function (){
    Route::resource('students', StudentController::class);   
});

但是我不能显示为这个网址。有人能教我正确的代码吗?
更新
我尽力了

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
7kjnsjlb

7kjnsjlb1#

要更改资源的前缀,必须更改资源名称。
例如:

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文档以获取更多信息。

jexiocij

jexiocij2#

为了补充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'
]);

相关问题