Laravel 4 - 检查帖子是否属于用户

Big*_*ies 1 laravel laravel-4

我想知道你是否可以给我一些以下的建议/代码.

我有一个使用标准Laravel用户身份验证的身份验证系统.

登录后,用户可以添加/编辑博客帖子.

这很有效,编辑的URL如下

/blog/edit/3
Run Code Online (Sandbox Code Playgroud)

其中3是博客文章的ID.

我看到的问题是我登录并操纵URL我可以编辑任何博客帖子,即使它不属于我.

有什么方法可以对此进行排序,以便只有添加博客文章的人才能编辑博客文章吗?

干杯,

Lau*_*nce 5

有很多方法可以做到这一点.我目前的偏好是使用自定义过滤器:

Route::model('blog', 'Blog');
Route::get('/blog/edit/{blog}', ['as' => 'blog.edit', 'before' => 'auth.blog', 'uses' => 'BlogController@edit']);
Run Code Online (Sandbox Code Playgroud)

然后在你的过滤器文件中

Route::filter('auth.blog', function($route, $request)
{
    if ($route->parameter('blog')->user_id !== Auth::user()->id)
    {
        return Redirect::route('home')->with('error', 'sorry - you do not have access to that blog');
});
Run Code Online (Sandbox Code Playgroud)