Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何减少Laravel中的重定向条件大小?_Php_Laravel_Redirect_Laravel 5 - Fatal编程技术网

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

Php 如何减少Laravel中的重定向条件大小?,php,laravel,redirect,laravel-5,Php,Laravel,Redirect,Laravel 5,我正在努力使我的Laravel应用程序更加简单。因此,我想知道如果我的一个函数返回true,怎么可能不重定向客户端,如果它是字符串(nottrue),怎么重定向客户端 假设我有这样一个函数: public function returnText() { $r = rand(1,100); if ($r > 50) { $redir = true; } else { $redir = 'http://google.com'; }

我正在努力使我的Laravel应用程序更加简单。因此,我想知道如果我的一个函数返回true,怎么可能不重定向客户端,如果它是字符串(nottrue),怎么重定向客户端

假设我有这样一个函数:

public function returnText() {
   $r = rand(1,100);
   if ($r > 50)
   {
     $redir = true;
   }
   else
   {
     $redir = 'http://google.com';
   }
   return $redir;
}
在我的Laravel控制器的功能中,我想要的是,如果结果是URL,则重定向用户,如果结果只是“true”,则不重定向(或者任何基本上与我返回true或其他内容无关的内容)

现在我显然可以用几行代码来完成,但我想优化一下,最多只需要1行2行代码

public function redi() {
    return redirect(CustomFunction::returnText());
}
我尝试过这种方法,但它显然会抛出一些错误,因为它无法理解“true”

关于如何用最少的代码行实现这一点,有什么想法吗

注意:使用Laravel 5.5

redirect()
函数需要将uri重定向到,并且
true
布尔值无效,因此出现错误

因此,您可以在函数中执行以下操作:

public function redi() {
    $redirectUrl = CustomFunction::returnText();
    if (!is_bool($redirectUrl)) {
        return redirect($redirectUrl);
    }
    return;
}
i、 e.仅当它提供除布尔值以外的任何值时才重定向