首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5用户权限

Laravel 5用户权限
EN

Stack Overflow用户
提问于 2016-07-05 00:16:32
回答 4查看 88关注 0票数 1

我是第一次接触laravel (5.2),并关注了这个伟大的系列https://www.youtube.com/watch?v=Zxmf0n2sC1I&index=34&list=PLwAKR305CRO-Q90J---jXVzbOd4CDRbVx

谁能给我指出正确的方向,如何设置身份验证,使注册用户只能编辑/删除他们自己的帖子。

例如:登录用户A不允许编辑用户B的帖子。

谢谢你帮我的忙。

EN

回答 4

Stack Overflow用户

发布于 2016-07-05 00:58:53

您可以使用ApiGuard。更多信息请访问:https://github.com/chrisbjr/api-guard

票数 1
EN

Stack Overflow用户

发布于 2016-07-05 01:12:31

如果您的posts表有一个user_id,那么您可以检查该用户是否与登录的用户相同。例如:

routes.php

代码语言:javascript
运行
复制
Route:get('post/{id}/edit', PostsController@edit);

PostsController.php

代码语言:javascript
运行
复制
class PostsController extends Controller{
    public function edit($id){
        $post = Post::findOrFail($id);
        if($post->user_id !== Auth::user()->id){
            abort(403);
        }
        return view('posts.edit', $post);
    }
}

编辑:已更新,包括在注释中请求的索引方法。

routes.php

代码语言:javascript
运行
复制
Route:get('posts', PostsController@index);
Route:get('post/{id}/edit', PostsController@edit);

PostsController.php

代码语言:javascript
运行
复制
class PostsController extends Controller{

    public function index(){
        $posts = Post::all();
        return view('posts.index', $posts);
    }        

    public function edit($id){
        $post = Post::findOrFail($id);
        if($post->user_id !== Auth::user()->id){
            abort(403);
        }
        return view('posts.edit', $post);
    }

}
票数 1
EN

Stack Overflow用户

发布于 2016-07-05 14:59:13

太棒了。这对于编辑来说是完美的。然而,我的索引视图(其中列出了所有帖子)出现了问题。我的代码看起来像这样:

代码语言:javascript
运行
复制
public function index($id)
{
    //create a var and store all blog posts from DB        
    $posts = Post::findOrFail($id);
    if($posts->id !== Auth::user()->id){
        abort(403, 'Access denied');
    }

    //return a view and pass in the above var
    return view('posts.index')->withPosts($posts);

}

我视图中的错误消息是: PostController.php第23行中的索引:App\Http\Controllers::index()缺少参数1。

我不知道如何处理索引($id),我可以从哪里获取id?

再次感谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38188890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档