Laravel重命名路由资源路径名称

tge*_*nis 1 php laravel laravel-4 laravel-routing

我们可以像在Ruby on Rails中一样在Laravel中重命名路由资源路径名吗?

当前

/users/create  ->  UsersController@create
/users/3/edit  ->  UsersController@edit
Run Code Online (Sandbox Code Playgroud)

我想这样;

/users/yeni  ->  UsersController@create
/users/3/duzenle  ->  UsersController@edit
Run Code Online (Sandbox Code Playgroud)

我想这样做本地化.


Ruby on Rails的示例;

scope(path_names: { new: "ekle" }) do
  resources :users
end
Run Code Online (Sandbox Code Playgroud)

Str*_*tsh 8

我知道这是一个老问题.我只是出于历史目的发布这个答案:

Laravel现在有可能将资源本地化.https://laravel.com/docs/5.5/controllers#restful-localizing-resource-uris

本地化资源URI默认情况下,Route :: resource将使用英语动词创建资源URI.如果需要本地化创建和编辑动作谓词,可以使用Route :: resourceVerbs方法.这可以在AppServiceProvider的boot方法中完成:

use Illuminate\Support\Facades\Route;

/**
 * Bootstrap any application services.
 *
 * @return void
 */

public function boot() {
    Route::resourceVerbs([
        'create' => 'crear',
        'edit' => 'editar',
    ]); } 
Run Code Online (Sandbox Code Playgroud)

一旦动词被定制,资源路由注册,例如Route :: resource('fotos','PhotoController')将产生以下URI:

/fotos/crear

/fotos/{foto}/editar
Run Code Online (Sandbox Code Playgroud)