为什么Silex说我的路线无法找到?

时间:2017-04-21 08:35:17

标签: php redirect routes silex

更新用户个人资料后,此行应将我重定向到显示其个人资料的页面:

return $app->redirect($app['url_generator']->generate('user/' . $id));

但是,我收到以下错误:

  

UrlGenerator.php第130行中的RouteNotFoundException:无法执行   生成指定路由的URL" user / 1"因为这样的路线没有   存在。

最后,这是我试图重定向到的控制器:

$app->match('/user/{id}', function (Request $request, $id) use ($app) {
    $user = new User();
    $user->find($id);

    $team = new Team();
    $team->find($user->data()->username);

    if($team->exists()){
        return $app['twig']->render('user.twig', [
            'team_data' => $team->data(),
            'user_data' => $user->data()
        ]);
    }
    else{
        return $app['twig']->render('user.twig', [
            'user_data' => $user->data()
        ]);
    }

});

即使我已经定义了这条路线,有人能告诉我为什么会出现这个错误吗?

1 个答案:

答案 0 :(得分:0)

使用$app['url_generator']->generate('user', ['id' => $id])

Silex(或者更确切地说是URL生成器)为您处理参数处理。