向资源路由添加方法

时间:2013-06-03 02:04:55

标签: laravel laravel-4

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

这是代码

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

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

1 个答案:

答案 0 :(得分: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

一切正常。