url कस्टम त्रुटि पृष्ठों में सिलेक्स और ट्विग हेल्पर्स



twig fatal-error (1)

मैं Silex में कस्टम त्रुटि पृष्ठ प्रस्तुत करने का प्रयास करते समय एक समस्या से जूझ रहा हूं।

इस लिंक में मुझे जो मिला है उसके मुताबिक: http://refactoring.us/silex/custom-error-pages-with-silex-and-twig/

मैं अपने आवेदन में एक कस्टम 404 त्रुटि पेज स्थापित करने की कोशिश कर रहा हूं। जब तक मैं अपने twig टेम्पलेट में हेल्पर्स का उपयोग शुरू नहीं करता तब तक सब कुछ ठीक काम करता है।

404 त्रुटि पेज टेम्पलेट के लिए एक अनुकरणीय कोड निम्नानुसार है:

{% extends "layout.html.twig" %}

{% block main %}
<div id="error404">
    <h2>{{ app.translator.trans('page404.title') }}</h2>
    <p>{{ app.translator.trans('page404.para1') }}</p>
    <p class="btn-footer">
        <a href="{{ url('home') }}" class="btn">{{ app.translator.trans('page404.button') }}</a>
    </p>
</div>
{% endblock %}

मेरे सिलेक्स ऐप में त्रुटि प्रबंधन के लिए PHP कोड:

$app->error(function (\Exception $e, $code) use($app) {
    switch ($code) {
        case 404:
            $message = $app['twig']->render('error404.html.twig');
            break;
        default:
            $message = $app['twig']->render('error500.html.twig');
    }
    return new Response($message, $code);
});

एक बार मैं हटा देता हूँ

{{ url('home') }}
(यह सहायक और मार्ग अन्य मामलों में पूरी तरह से काम करता है!) मुझे उचित प्रस्तुत साइट मिलती है, लेकिन अनुवाद के बिना।

सहायक के साथ, मुझे निम्न त्रुटि मिलती है:

Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\RouteNotFoundException' with message 'Route "" does not exist.' in D:\projects\projectname\application\vendor\symfony\routing\Symfony\Component\Routing\Generator\UrlGenerator.php:119 Stack trace: 
#0 D:\projects\projectname\application\vendor\symfony\twig-bridge\Symfony\Bridge\Twig\Extension\RoutingExtension.php(45): Symfony\Component\Routing\Generator\UrlGenerator->generate(NULL, Array, false) 
#1 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Environment.php(327) : eval()'d code(68): Symfony\Bridge\Twig\Extension\RoutingExtension->getPath(NULL, Array) 
#2 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php(265): __TwigTemplate_ca53e56b87abd45da5c34a79d4c2ce34->doDisplay(Array, Array) 
#3 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php(239): Twig_Template->displayWithErrorHandling(Array, Array) 
#4 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Envir in D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php on line 280

इसलिए मुझे यहां कुछ मार्गदर्शन की आवश्यकता है कि इस कारण के कारण संभावित कारण क्या हो सकता है और इस मुद्दे को हल करने के लिए कदम उठाए जा रहे हैं। सभी मदद की सराहना की।


यह एक सिलेक्स समस्या नहीं है (अभी तक) - सबकुछ मेरी तरफ से पूरी तरह से काम करता है ( सिलेक्स 1.2)

क्या आपने अपने ऐप में UrlGeneratorServiceProvider पंजीकृत किया था?

web/index.php :

$app->register(new Silex\Provider\UrlGeneratorServiceProvider());

और आपको वास्तव में इस मामले में url() बजाय path() उपयोग करना चाहिए:

{{ path('home') }}




silex