树枝生成URL /路由错误 /函数未知



我正在使用silex 1.2和twig 1.0。

我试图用树枝生成一个URL。

<a href="{{ path('signUp') }}">Sign Up</a>

但是我得到了这个错误:

twig_error_syntax Unknown "path" function.

所以,就像在这篇文章上一样(silex -twig_error_syntax:function'path"不存在)我在我的 boostrap.php中添加了它。

$app->register(new UrlGeneratorServiceProvider());
$app['twig']->addFunction(new Twig_SimpleFunction('path', function($url) use ($app) {
    return $app['url_generator']->generate($url);
}));

但是我得到了这个错误:

RoutenotFoundException Unable to generate a URL for the named route "signUp" as such route does not exist.

路由文件

<?php
$routes = $app['controllers_factory'];
$routes->get('/', function () use ($app){
    return $app['twig']->render('home.html.twig');
});
$routes->get('/signUp', function () use ($app){
    return $app['twig']->render('signUp.html.twig');
});
$routes->get('/signIn', function () use ($app) {
    return $app['twig']->render('signIn.html.twig');
});
return $routes;

你能帮我吗?

谢谢!

路径/signUp与您在路径中提供的路由名称不同。您可能想要使用bind这样的命名路线:

$routes->get('/signUp', function () use ($app){
    return $app['twig']->render('signUp.html.twig');
})->bind('signUp');

将其添加到config/services.yaml为我解决了:

services:
    TwigEnvironment:
        calls:
            - [addExtension, ['@SymfonyBridgeTwigExtensionRoutingExtension']]
    SymfonyBridgeTwigExtensionRoutingExtension:

最新更新