我试图在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
答案 0 :(得分:1)
redirect()
函数需要uri重定向到true
布尔值无效,因此错误。
所以,你可以在你的函数中做这样的事情:
public function redi() {
$redirectUrl = CustomFunction::returnText();
if (!is_bool($redirectUrl)) {
return redirect($redirectUrl);
}
return;
}
即。只有重定向,如果它只给你一个布尔值。