`return`方法dosn在受保护的函数中工作

时间:2016-08-05 23:55:09

标签: php laravel

Laravel 5.2

我想测试用户是否是页面错误的条目,我想将用户重定向到最后一个分页,但我想使用带有资源控制器的受保护功能

// Resource controller

protected function checkPage($paginate_number){
    $paginate_count = Product::count() / $paginate_number;

    if(isset($_GET['page']) && $_GET['page'] > $paginate_count){
        return redirect('/admin/products?page='.$paginate_count);
    }
}

public function index(){
    $paginate_number = 3;
    $this->checkPage($paginate_number);

    $products = Product::paginate($paginate_number);
    return view('admin.products-view')->withProducts($products);         
}

但是当我在受保护的功能之外使用return redirect(...)时,它会起作用 我如何在protected function内使用它?

2 个答案:

答案 0 :(得分:0)

您不能在不在路线中的功能中使用重定向。您的检查页功能称为子功能,因此不起作用。而且我不确定你正确使用的直接函数,我通常使用返回Redirect :: back(); or返回Redirect :: to('url');`

答案 1 :(得分:0)

我找到了使用protected function解决此问题的好方法,因为我无法使用重定向

溶液

protected function checkPage($paginate_number){
    $paginate_count = Product::count() / $paginate_number;

    if(isset($_GET['page']) && $_GET['page'] > $paginate_count){
        // If needed to create another error page to explain current error
        return abort(404);
    }
}