Как уменьшить размер условия перенаправления в Laravel?

Я пытаюсь сделать вещи проще в моем приложении Laravel. Поэтому мне интересно, как можно НЕ перенаправлять клиента, если одна из моих функций возвращает true, и как перенаправить, если это строка (не правда).

Допустим, у меня есть такая функция:

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());
}

Я пробовал этот подход, но он, очевидно, выдает некоторую ошибку, потому что он не может понять «истина».

Любые идеи о том, как добиться этого с наименьшим количеством строк кода?

P.S .: используя Laravel 5.5

1

Решение

redirect() Функция требует URI для перенаправления и true недопустимое логическое значение, следовательно, ошибка.

Итак, вы можете сделать что-то подобное в своей функции:

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

т.е. только перенаправление, если оно дает вам что-либо кроме логического значения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector