捕获Laravel中某些路由上的所有HTTP谓词

时间:2018-04-27 03:20:42

标签: laravel http laravel-5 routes laravel-5.1

如何编写Laravel 5.1路由器/控制器以响应特定路由上的任何/所有HTTP谓词(GET,POST,DELETE等)?

我可以声明:

Route::controller('foo', 'FooController');

class FooController extends Controller
{
    public function getIndex()
    {
    }

    public function postIndex()
    {
    }
}

但是我没有为所有动词列出单独的方法,而是想要像:

class FooController extends Controller
{
    public function allIndex()
    {
    }
}

2 个答案:

答案 0 :(得分:6)

Route::any('foo', 'FooController@allIndex');

您可以使用any它可以在单个函数上处理所有类型的请求。

class FooController extends Controller
{
    public function allIndex()
    {
    }
}

其次在您的控制器中,您可以使用method()

检查调用哪种方法类型的方法
public function allIndex()
{
     request()->method() // returns GET,POST, PUT, PATCH

}

希望这有帮助。

答案 1 :(得分:0)

检查这是否是您要找的:

Route::any('foo', [ 'uses' => 'FooController@allIndex' ]);