Laravel 4:在路线中传递变量

时间:2014-02-05 07:48:49

标签: php laravel laravel-4

我正在尝试做路由控制器,在我的路由文件中它看起来像这样:

Route::get('/data', 'ProcessController@data');
Route::get('/data2', 'ProcessController@data2');
Route::get('/data3', 'ProcessController@data3');
Route::get('/data4', 'ProcessController@data4');

正如你可以看到那里的模式。如何将所有内容组成一行,这样我就不需要重复分配路由了?

谢谢。

1 个答案:

答案 0 :(得分:2)

我可以看到一个模式,但是您无法在一行中为不同的控制器操作分配不同的路径,但您可以将此一个添加为最后一条路径,因为这条路线将捕获所有内容,您的其他路线可能不会被击中:

Route::get('/{data}', 'ProcessController@process');

在你的控制器中:

<?php

class ProcessController extends Controller {

    public function process($data)
    {
        $this->{$data}(); // execute your method
    }

    public function data() {}
    public function data1() {}
    public function data2() {}
    public function data3() {}

}

这是未经测试的代码,您需要更多代码,因为您还需要测试控制器中是否存在该方法,如果不存在,则将用户重定向到另一个。< / p>