我是第一次接触laravel (5.2),并关注了这个伟大的系列https://www.youtube.com/watch?v=Zxmf0n2sC1I&index=34&list=PLwAKR305CRO-Q90J---jXVzbOd4CDRbVx
谁能给我指出正确的方向,如何设置身份验证,使注册用户只能编辑/删除他们自己的帖子。
例如:登录用户A不允许编辑用户B的帖子。
谢谢你帮我的忙。
发布于 2016-07-05 00:58:53
您可以使用ApiGuard。更多信息请访问:https://github.com/chrisbjr/api-guard
发布于 2016-07-05 01:12:31
如果您的posts表有一个user_id,那么您可以检查该用户是否与登录的用户相同。例如:
routes.php
Route:get('post/{id}/edit', PostsController@edit);PostsController.php
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
Route:get('posts', PostsController@index);
Route:get('post/{id}/edit', PostsController@edit);PostsController.php
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);
}
}发布于 2016-07-05 14:59:13
太棒了。这对于编辑来说是完美的。然而,我的索引视图(其中列出了所有帖子)出现了问题。我的代码看起来像这样:
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?
再次感谢
https://stackoverflow.com/questions/38188890
复制相似问题