2

我正在尝试将方法添加到具有参数的资源路由中。如果我创建一个没有参数的,它可以找到,但是当我尝试添加一个参数时它不起作用。

这是代码

Route::get('temp_user/activate/{id}', 'TempUserController@activate');
Route::resource('temp_user','TempUserController', array('only' => array('index','create','store')));

上面的代码不起作用,但是我需要将参数传递给我的方法。请帮忙。

4

1 回答 1

4

在这里工作正常。为了不创建我刚刚使用的新控制器和旧控制器:

<?php

class StoreController extends Controller {

    public function activate($id)
    {
        return 'activate '.$id;
    }

    public function index()
    {
        return 'index';
    }   

    public function create()
    {
        return 'create';
    }   

}

使用路线:

Route::get('temp_user/activate/{id}', 'StoreController@activate');
Route::resource('temp_user','StoreController', array('only' => array('index','create','store')));

执行后

php artisan routes

我明白了

|    | GET /temp_user/activate/{id} |                   | StoreController@activate | |  |
|    | GET /temp_user               | temp_user.index   | StoreController@index    | |  |
|    | GET /temp_user/create        | temp_user.create  | StoreController@create   | |  |
|    | POST /temp_user              | temp_user.store   | StoreController@store    | |  |

和浏览:

http://172.17.0.2/temp_user/create

http://172.17.0.2/temp_user/activate/1

http://172.17.0.2/temp_user

一切正常。

于 2013-06-03T02:28:37.010 回答