Laravel 4 防止其他用户查看/编辑彼此数据的最佳做法

Laravel 4 防止其他用户查看/编辑彼此数据的最佳做法,laravel-4,Laravel 4,我是拉雷维尔的新手,想知道会发生什么;这是防止用户相互编辑数据的最佳做法 我知道我可以使用过滤器和身份验证来处理用户页面,例如 Route::filter('auth', function($route) { $id = $route->getParameter('id'); if( Auth::check() && Auth::user()->id != $id) { return Redirect::route('forbi

我是拉雷维尔的新手,想知道会发生什么;这是防止用户相互编辑数据的最佳做法

我知道我可以使用过滤器和身份验证来处理用户页面,例如

 Route::filter('auth', function($route)
   {
    $id = $route->getParameter('id');
     if( Auth::check() && Auth::user()->id != $id) {

      return Redirect::route('forbidden');
   }
});
然而,我想知道关系页面(即/user\u profile/14、user\u settings/22等)的情况如何。我是否为这些[group of]路由中的每个路由定义了筛选器,并根据关系检查id??e、 g

Route::filter('auth.user_settings', function($route)
{
    $id = $route->getParameter('id');
     if( Auth::check() && Auth::user()->user_settings->id != $id) {

      return Redirect::route('forbidden');
  });

Route::filter('auth.user_profile', function($route)
{
    $id = $route->getParameter('id');
     if( Auth::check() && Auth::user()->profile->id != $id) {

      return Redirect::route('forbidden');
  });

 ...etc

或者有更好的方法来实现这一点吗???

我猜您的应用程序是以这样的方式完成的:

Route::get('user_profile/{id}', function()
如果这就是您为用户定义路由的方式,您可能希望将其更改为:

Route::get('user_profile', function()

然后,根据请求,控制器将使用类似于profile::findOrFail(Auth::user()->id)的东西从当前经过身份验证的用户加载适当的配置文件/设置,在这种情况下,您不必担心用户签出其他配置文件,而你所需要的就是路由的“auth”过滤组。

我觉得自己愚蠢得难以置信。为我辩护,这是漫长的一天,我不知道我在想什么,。瞧。谢谢