如何在laravel中仅允许POST和GET http动词用于隐式控制器的方法

时间:2016-01-11 05:23:11

标签: php laravel

假设我有一个这样的隐式控制器:

class UserController extends Controller
{

    public function getShow($id)
    {
        //
    }

}

在路线中我写这个:

Route::controller('users', 'UserController');

我们知道users/show仅在用户通过 GET http请求请求时才会响应。

但如果我想要它只响应GET和POST(而不是其他方法,如PUT,DELETE,......)我该怎么做?

当然我们知道我们可以在上面的方法中使用any前缀,但它会响应所有的http方法。像这样:

class UserController extends Controller
    {

        public function anyShow($id)
        {
            //
        }

    }

1 个答案:

答案 0 :(得分:1)

如果你的隐式控制器只包含GET和POST(前缀)方法 - 没有其他方法可以工作,所以不必担心。

EG。如果你有:

class UserController extends Controller
{
    public function getShow($id)
    {
    }

    public function postShow($id)
    {
    }
}

Laravel只允许'GET / show'和'POST / show'。

请注意,Laravel很快就会放弃隐式控制器,因为即使它们提供简单性,隐式控制器也会带来许多缺点。 This article有一个很好的分析。