我们是否有机会根据Laravel中的参数(get参数)使用特定的Controller操作?

时间:2015-03-22 16:40:03

标签: laravel controllers

基本上,我想要以下路线。

Route::get('/{parameter}', 'SomeController@parameter');

任何帮助都会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:0)

没有内置方式,但实现自己是非常简单的:

class SomeController {

    public function route($method)
    {
        if ( ! method_exists($this, $method))
        {
            app()->abort(404);
        }

        return $this->{$method}();
    }

}

然后在你的路线中:

Route::get('/{parameter}', 'SomeController@route');

如果要将任何其他参数传递给各自的方法,请使用:

use Illuminate\Http\Request;

class SomeController {

    public function route($method, Request $request)
    {
        if ( ! method_exists($this, $method)) app()->abort(404);

        $parameters = array_slice($request->segments(), 1);

        return call_user_func_array([$this, $method], $parameters);
    }

}