【问题标题】:Laravel 4, redirect and stop executing functionLaravel 4、重定向和停止执行功能
【发布时间】:2014-05-16 21:08:05
【问题描述】:

我创建了一个用于身份验证的函数,并创建了另一个用于检查参数的函数。函数 checkParameters 接受 2 个参数,一个带有需要验证的输入参数的数组,另一个参数是我要重定向的路由的重定向。 我在函数 authenticate 中调用函数 checkParameters。 问题是,如果验证器没有运行,这意味着某些字段是空的,我想重定向那个函数。但是当函数重定向但它没有停止执行时会出现问题,它会继续执行身份验证函数,发出没有参数的api请求。 我如何重定向和停止该功能,而不执行其余代码。我想要类似的东西:

Redirect::to($redirectto)->send();
die();

【问题讨论】:

    标签: php redirect laravel laravel-4


    【解决方案1】:

    laravel 中的重定向是这样完成的

    return Redirect::to('/');
    

    所以这总是会停止执行。

    (关于您的验证功能,您可能希望在这些功能上使用 try catch 块,因此您只需在一个地方重定向 - 例如控制器)

    【讨论】:

    • 但是现在我在 api 中遇到了同样的情况,我这样做: if(!$validator->passes()){ return $validator->messages()->toJson();我想以 json 的形式返回。现在,当我在另一个函数中调用此函数时,它不会以 json 格式返回,而是显示空白页,但在后面继续执行该函数。我需要以 json 响应并停止执行
    • 您不会在 api 调用中进行重定向。只需执行 return Response::json($message) 而 $message 可能是 $message = ['success' => true, 'data' => [...]] 或者如果 api 调用不成功则错误。
    【解决方案2】:

    要停止一个函数,你必须使用return 运算符

    【讨论】:

      猜你喜欢
      • 2019-10-22
      • 2016-08-20
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2020-07-21
      • 2022-12-08
      相关资源
      最近更新 更多