2017-10-31 1 views
1

Laravel 응용 프로그램에서 더 단순하게 만들려고합니다. 따라서 내 함수 중 하나가 true를 반환하고 문자열 인 경우 (true가 아닌) 리디렉션하는 방법을 사용하면 클라이언트를 리디렉션하지 않는 것이 가능한지 궁금합니다. 단순히 '사실이라면Laravel에서 리디렉션 조건 크기를 줄이는 방법은 무엇입니까?

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

내가 내 Laravel의 컨트롤러의 함수 내에서 원하는 것은이 결과가 URL의 경우 사용자를 리디렉션하고 리디렉션하지 않습니다

그럼 나는이 같은 함수가 있다고 가정 해 보자 '(또는 내가 진실 또는 다른 것을 돌려 주면 근본적으로 상관 없습니다).

이제는 분명히 몇 줄로 할 수 있지만 최대 2 줄을 1 줄만 사용하도록 최적화하고 싶습니다.

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

나는이 접근법을 시도했지만 분명히 '사실'을 이해할 수 없기 때문에 약간의 오류가 발생합니다.

최소 코드 줄을 사용하여이를 달성하는 방법에 대한 아이디어가 있으십니까?

P.S :

답변

1

redirect() 기능 Laravel 5.5 사용은 URI가 리디렉션 및 true 부울 값, 따라서 에러 무효 요구한다.

그래서, 당신은 함수에서이 같은 작업을 수행 할 수 있습니다

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

즉 그것은 당신에게 부울 값하지만 아무것도 제공하는 경우에만 리디렉션합니다.

관련 문제