Тонкая петля 3 перенаправления маршрута не работает - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь создать простой маршрут для перенаправления конечных точек на определенный URL-адрес на основе массива / ключа.

$redirects = [
    "/ios" => $GLOBALS['config']['iosAppStoreLink'],
    "/android" => $GLOBALS['config']['androidAppStoreLink']
];

/**
 * Redirects
 */
foreach($redirects as $endpoint => $url) {
    $app->get($endpoint, function($request, $response) {
        return $response->withRedirect($url);
    });
}

Конечные точки создаются без проблем, только когда я нахожусь внутри *Функция 1004 *, она не позволяет мне использовать $url ... Я получаю ошибку Undefined Index в своей консоли.

Что я здесь делаю неправильно, почему я не могу получить доступ к $url переменная?

1 Ответ

0 голосов
/ 09 июня 2018

Чтобы позволить функции получать доступ к $url из-за пределов собственной области действия, вы можете использовать синтаксис function() use() { ...

foreach($redirects as $endpoint => $url) {
    $app->get($endpoint, function($request, $response) use ($url) {
        return $response->withRedirect($url);
    });
}
...