2015-08-28 2 views
1

Я хочу, чтобы создать динамичную маршрутную группу в рамках Слим но I'm получениемаршрут группа тонкая структура

Предупреждение: Отсутствует аргумент 1 для {закрытия}() я

это мой код:

\Slim\Slim::registerAutoloader(); 

$app = new \Slim\Slim(); 

$app->group('/:segment1/:segment2', function ($segment1, $segment2) use ($app) { 

    $app->map('/', function() use ($app) { 

    })->via('GET', 'POST'); 

    $app->map('/:id', function ($id) use ($app) { 

    })->via('GET', 'PUT', 'DELETE'); 

}); 

$app->run(); 

Если я изменить:

$app->group('/:segment1/:segment2', function ($segment1, $segment2) use ($app) 

к:

$app->group('/segment1/segment2', function() use ($app) 

он начинает работать, но мне нужны эти сегменты, чтобы быть динамичными. Как мне это сделать?

ответ

2

Вы должны добавить параметры группы к их функции ребенка маршрутов:

$app->group('/:segment1/:segment2', function() use ($app) { 

    $app->map('/', function ($segment1, $segment2) use ($app) { 
     // something 
    })->via('GET', 'POST'); 

    $app->map('/:id', function ($segment1, $segment2, $id) use ($app) { 
     // something 
    })->via('GET', 'PUT', 'DELETE'); 
}); 

Также обратите внимание на this issue.

+0

это будет работать. благодаря! – handsome

+1

только для подтверждения. Я не смогу использовать $ segment1 и $ segment2 внутри группы (мне нужно создать там объект и использовать его внутри этих $ app-> map()! – handsome