Laravel 5 Restful 资源控制器的授权以将资源限制为登录用户

Laravel 5 Auth for Restful Resource Controllers to restrict resource to logged in user

我有一个非常基本的 RESTful 地址管理器。我有用户帐户设置,用户登录全部基于 Auth,并且正在集成委托,但这超出了本文的范围。现在,我只想将对我的 AddressController 的访问权限限制为已登录的用户。我可以使用以下方法在路由上执行此操作:

Route::get('profile', ['middleware' => 'auth', 'uses' => 'UserController@getProfile']);

但是,如果我在我的 RESTful 资源上按如下方式尝试此操作,它不起作用 - 我没有收到错误,但未经身份验证的用户仍然可以访问该资源。

Route::resource('addresses', 'AddressController', ['middleware' => 'auth']);

尝试对应该使用特定中间件的资源进行分组:

Route::group(['middleware' => 'auth'], function(){
    Route::resource('addresses', 'AddressController');
});

只有您知道您的场景如何,但另一种 运行 资源过滤器的方法是在资源的构造函数中调用所需的中间件,例如:

class AddressController extends Controller {

public function __construct()
{
    $this->middleware('auth');
}