如何减少Laravel中的重定向条件大小?

时间:2017-10-31 15:49:00

标签: php laravel redirect laravel-5

我试图在Laravel应用程序中使事情变得更简单。因此,我想知道如果我的一个函数返回true,如果它是一个字符串(不是真的话),如何重定向客户端是不可能的。

所以,让我说我有这样的功能:

public function returnText() {
   $r = rand(1,100);
   if ($r > 50)
   {
     $redir = true;
   }
   else
   {
     $redir = 'http://google.com';
   }
   return $redir;
}

我想要的Laravel控制器功能是,如果结果是网址,则重定向用户,如果简单,则不要重定向' true&# 39; (或者,如果我返回true或其他东西,基本上没什么关系)。

现在我可以用几行来做到这一点,但我想优化它只需要最多2行。

public function redi() {
    return redirect(CustomFunction::returnText());
}

我尝试过这种方法但显然会引发一些错误,因为它无法理解' true'。

有关如何使用最少的代码行实现此目的的任何想法?

P.S。:使用Laravel 5.5

1 个答案:

答案 0 :(得分:1)

redirect()函数需要uri重定向到true布尔值无效,因此错误。

所以,你可以在你的函数中做这样的事情:

public function redi() {
    $redirectUrl = CustomFunction::returnText();
    if (!is_bool($redirectUrl)) {
        return redirect($redirectUrl);
    }
    return;
}

即。只有重定向,如果它只给你一个布尔值。