【问题标题】:Laravel 5 Redirect from another methodLaravel 5 从另一种方法重定向
【发布时间】:2016-01-14 15:47:36
【问题描述】:

我想创建一个可以从其他方法调用的重定向方法。不幸的是,我不能按照我的意愿去做(见下面的来源)。

我提出了一个解决方案,但我想重定向只是调用方法,而不是做更多的事情。

我的解决方案:

class FooController extends Controller
{

    public function foo(Request $request)
    {
        if ($result = $this->__check($request)) {
            return $result;
        }
        return view('foo');
    }

    private function __ckeck(Request $request)
    {
        if (doSomething) {
            return redirect('/');
        }
        return false;
    }
}

我想要什么:

class FooController extends Controller
{

    public function foo(Request $request)
    {
        $this->__check($request);

        return view('foo');
    }

    private function __ckeck(Request $request)
    {
        if (doSomething) {
            // redirect source <--- what I want
        }
        return false;
    }
}

【问题讨论】:

  • 寻找相同的解决方案。

标签: php redirect methods controller laravel-5


【解决方案1】:

您应该在那里处理重定向或返回响应。

如果您想分开,最好使用自定义请求。

因此,在您创建新请求后,您可以简单地在 authorize 方法中进行您希望的检查。

/**
 * Determine if the user is authorized to make this request.
 *
 * @return bool
 */
public function authorize()
{
    if ($this->session('foo')) {
        return true;
    }

    return false;
}

【讨论】:

  • 我在询问重定向。我想要一个方法从另一个方法调用。
  • 对不起,laravel中没有这个东西,你必须返回响应。
【解决方案2】:

也许这就是您要搜索的内容

public function foo(Request $request)
{
    return $this->check($request);
}

private function check(Request $request)
{
    if (doSomething) 
    {
       return Redirect::to('/dash'); // redirect
    }
    return Redirect::to('/');   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2015-04-24
    相关资源
    最近更新 更多