在Laravel 5.4中,请求验证仅适用于分页的第一页

时间:2018-03-05 14:16:39

标签: php laravel

所以发生的事情是我为用户帖子和用户朋友发布了一系列ID,然后检查当前网页的帖子ID是否在ID数组。这是我想要的第一页,但因为我使用分页,它不适用于第一页之后的页面。

public function authorize(Request $request)
{
    $postRepo = $this->postRepo;
    $posts = $postRepo->index();
    $posts->all();
    $post_id = $request->route('post_id');
    $posts = $posts->pluck('id')->toArray();
    if (in_array($post_id, $posts)) {
       return true;
    }
}

目前,id的数组只显示第一页似乎是问题的那些

array:4 [▼
0 => 10
1 => 11
2 => 9
3 => 17
]

1 个答案:

答案 0 :(得分:0)

您可以将authorize()方法更改为:

public function authorize(Request $request)
{
    $postRepo = $this->postRepo;
    $post_id = $request->route('post_id');

    // Here I believe that index() method return a Eloquent Builder
    $posts = $postRepo->index();

    return (boolean) $posts->where('id', $post_id)->count();
}

如果在$postRepo->index()中存在$ post_id,它将返回true。