是否有可能减少laravel4中的路线

Nis*_*nth 2 laravel laravel-4

我想知道是否有可能减少laravel4中相同控制器的路由.

这是我的路线:

Route::get('emp/add-employee/','EmpController@addEmployee');

Route::post('emp/add-employee/','EmpController@addEmployee');

Route::get('emp/edit-employee/{id}','EmpController@editEmployee');

Route::post('emp/edit-employee/{id}','EmpController@editEmployee');

Route::get('emp/view-employee/{id}','EmpController@viewEmployee');
Run Code Online (Sandbox Code Playgroud)

有什么可以减少......?

Bog*_*dan 5

您的路由操作看起来就像您在RESTful资源控制器中找到的那些.所以你可以使用这个:

Route::resource('emp', 'EmpController', array('only' => array('create', 'store', 'edit', 'update', 'show')));
Run Code Online (Sandbox Code Playgroud)

这当然要求您相应地重命名控制器方法,并且路径路径将略有不同,但您将拥有更紧凑的路由定义和一致的命名.以下是Route::resource上面定义生成的路由.

+-----------------------------+---------------+-------------------------+
| GET  emp/create             | emp.create    | EmpController@create    |
| POST emp                    | emp.store     | EmpController@store     |
| GET  emp/{id}               | emp.show      | EmpController@show      |
| GET  emp/{id}/edit          | emp.edit      | EmpController@edit      |
| PUT  emp/{id}               | emp.update    | EmpController@update    |
+-----------------------------+---------------+-------------------------+
Run Code Online (Sandbox Code Playgroud)

所以你必须重命名控制器方法名称,如下所示:

GET : addEmployee()  -> create() // shows the add form
POST: addEmployee()  -> store()  // processes the add form when submitted
GET : editEmployee() -> edit()   // shows the edit form
POST: editEmployee() -> update() // processes the edit form when submitted
GET : viewEmployee() -> show()
Run Code Online (Sandbox Code Playgroud)