2017-10-31 5 views
1

私はLaravelアプリケーションでもっとシンプルにしようとしています。したがって、私の関数のいずれかがtrueを返す場合、クライアントがリダイレクトされないようにする方法と、それが文字列である場合にリダイレクトする方法(真ではない)はどうすればいいでしょうか。Laravelのリダイレクト条件サイズを減らすには?

それでは、私はこのような機能を持っているとしましょう:結果はURLであり、それは単に「本当ならばリダイレクトしない場合は

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

私は私のLaravelのコントローラの機能の中に欲しいのは、ユーザーをリダイレクトすることです'(または、基本的には、私が真実か何かを返すかどうかは関係ありません)。

私は明らかにそれを数行で行うことができますが、最大2行を1つだけ取るように最適化したいと思います。

私はこのアプローチを試みましたが、「真実」を理解できないため、明らかに何らかのエラーを投げます。

最小のコード行でこれを達成する方法に関するアイデアはありますか?

P.S:Laravel 5.5

答えて

1

redirect()関数の使用にリダイレクトするURIを必要としtrueブール値は無効であり、したがって誤差。

だから、あなたはあなたの関数ではこのような何かを行うことができます。

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

すなわち、それはあなたにブール値ではなく、何かを与えた場合にのみリダイレクトします。