Slim 3重定向路由循环不起作用

时间:2018-06-09 06:53:40

标签: php routing slim

我正在尝试创建一个简单的路由,根据数组/密钥将端点重定向到特定的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);
    });
}

一旦我进入$app->get函数,端点就会毫无问题地创建,它不允许我使用$url ...我的Undefined Index错误控制台。

我在这里做错了什么,为什么我无法访问$url变量?

1 个答案:

答案 0 :(得分:1)

要允许该功能从其自身范围之外访问$url,您可以使用function() use() {语法...

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