Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4休息路线参数_Php_Rest_Laravel_Laravel 4_Laravel Routing - Fatal编程技术网

Php Laravel 4休息路线参数

Php Laravel 4休息路线参数,php,rest,laravel,laravel-4,laravel-routing,Php,Rest,Laravel,Laravel 4,Laravel Routing,这可能是一个简单的问题,但我正在和拉威尔一起测试。我的路线设置如下: // Users Route Route::get('users',array('as'=> 'users', 'uses'=> 'UsersController@index')); Route::get('users/{id}', array('as' => 'user', 'uses' => 'UsersController@show') ); Route::get('users/{id}/edit

这可能是一个简单的问题,但我正在和拉威尔一起测试。我的路线设置如下:

// Users Route
Route::get('users',array('as'=> 'users', 'uses'=> 'UsersController@index'));
Route::get('users/{id}', array('as' => 'user', 'uses' => 'UsersController@show') );
Route::get('users/{id}/edit', array('as' => 'edit_user', 'uses' => 'UsersController@edit') );
Route::get('users/new', array('as' => 'new_user', 'uses' => 'UsersController@create'));
Route::post('users',  'UsersController@create');
Route::delete('users', 'UsersController@destroy');
现在,在我的浏览器中,如果我访问
localhost/users/new
,它将调用名为“user”的路由,而不是“new\u user”。我的意思是,它将加载路由进行编辑,而不是创建用户


我的代码怎么了?

优先级很重要,只需更改为:

Route::get('users',array('as'=> 'users', 'uses'=> 'UsersController@index'));
Route::get('users/new', array('as' => 'new_user', 'uses' => 'UsersController@create'));
Route::get('users/{id}', array('as' => 'user', 'uses' => 'UsersController@show') );
Route::get('users/{id}/edit', array('as' => 'edit_user', 'uses' => 'UsersController@edit') );
Route::post('users',  'UsersController@create');
Route::delete('users', 'UsersController@destroy');

Laravel假设'new'是您的{id}参数。

优先级很重要,只需更改为:

Route::get('users',array('as'=> 'users', 'uses'=> 'UsersController@index'));
Route::get('users/new', array('as' => 'new_user', 'uses' => 'UsersController@create'));
Route::get('users/{id}', array('as' => 'user', 'uses' => 'UsersController@show') );
Route::get('users/{id}/edit', array('as' => 'edit_user', 'uses' => 'UsersController@edit') );
Route::post('users',  'UsersController@create');
Route::delete('users', 'UsersController@destroy');

Laravel假设'new'是您的{id}参数。

如果您使用的是
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) {


    }

}

如果您使用的是
restfulapi
,那么最好使用资源路由

路线,

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) {


    }

}

我尝试使用此代码,当我访问“users/new”时,它会抛出此错误:isset或emptyNow中的非法偏移量类型现在您必须查看您的方法UsersController@create,看起来你有一个错误。哦,我想这是我的问题的根源,不是路线。路线也不起作用,因为,正如我所说,优先级很重要。如果Laravel将按照您写入路由的顺序处理路由,如果它找到适合的路由,则将使用此路由,而忽略所有其他路由。我尝试使用此代码,当我访问“用户/新建”时,它会抛出此错误:isset或emptyNow中的非法偏移量类型现在您必须查看您的方法UsersController@create,看起来你有一个错误。哦,我想这是我的问题的根源,不是路线。路线也不起作用,因为,正如我所说,优先级很重要。如果Laravel将按照您编写路由的顺序处理路由,如果它找到适合的路由,则将使用此路由,而忽略所有其他路由。