2013-10-09 2 views
0

Это может быть простая проблема, но я тестирую Laravel. Я поставил свои маршруты, как это соответственно:Laravel 4 Параметры маршрута для REST

// Users Route 
Route::get('users',array('as'=> 'users', 'uses'=> '[email protected]')); 
Route::get('users/{id}', array('as' => 'user', 'uses' => '[email protected]')); 
Route::get('users/{id}/edit', array('as' => 'edit_user', 'uses' => '[email protected]')); 
Route::get('users/new', array('as' => 'new_user', 'uses' => '[email protected]')); 
Route::post('users', '[email protected]'); 
Route::delete('users', '[email protected]'); 

Теперь в моем браузере, если я посещаю localhost/users/new, он будет вызывать маршрут под названием «пользователь» не «new_user». Я имею в виду, что он загрузит маршрут для редактирования, а не для создания пользователей.

Что случилось с моим кодом?

ответ

2

вопросы старшинства, просто изменится:

Route::get('users',array('as'=> 'users', 'uses'=> '[email protected]')); 
Route::get('users/new', array('as' => 'new_user', 'uses' => '[email protected]')); 
Route::get('users/{id}', array('as' => 'user', 'uses' => '[email protected]')); 
Route::get('users/{id}/edit', array('as' => 'edit_user', 'uses' => '[email protected]')); 
Route::post('users', '[email protected]'); 
Route::delete('users', '[email protected]'); 

Laravel предположил, что 'новый' был ваш {идентификатор} параметр.

+0

Я пытался использовать этот код и выдает эту ошибку, когда я посещаю «пользователь/новый»: Незаконный типа смещение in isset или empty – Bajongskie

+0

Теперь вы должны посмотреть на свой метод UsersController @ create, похоже, что у вас есть ошибка. –

+0

О, я думаю, что это корень моей проблемы, а не маршруты. – Bajongskie

3

Если вы используете RESTful API, то лучше всего использовать маршрутизацию ресурсов.

Маршрут,

Route::resource('users', 'UsersController'); 

И контроллер,

<?php 


class UsersController extends BaseController { 

    /** 
    * Display all users. 
    * 
    * @return Response 
    * GET http://localhost/laravel/users 
    */ 

    public function index() { 

    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return Response 
    */ 

    public function create() { 
     // 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @return Response 
    * POST http://localhost/laravel/users 
    */ 

    public function store() { 
     // 
    } 

    /** 
    * Display the specified resource. 
    * 
    * @param int $id 
    * @return Response 
    * GET http://localhost/laravel/users/1 
    */ 

    public function show($id) { 
     // 
    } 

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return Response 
    */ 

    public function edit($id) { 
     // 
    } 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param int $id 
    * @return Response 
    * PUT http://localhost/laravel/users/1 
    */ 

    public function update($id) { 
     // 
    } 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return Response 
    * DELETE http://localhost/laravel/users/1 
    */ 

    public function destroy($id) { 


    } 

} 
+0

+1, поскольку он устраняет головную боль мануэли-пишущих маршрутов. – itachi

Смежные вопросы