Özel Silex & Dal yardımcıları hata sayfaları
Silex
özel hata sayfası oluşturmak için çalışırken bir sorun ile mücadele ediyorum.
Neye göre bu link :http://refactoring.us/silex/custom-error-pages-with-silex-and-twig/ içinde buldum
Benim uygulamada özel 404 hata sayfası olarak ayarlamak için çalışıyorum. Her dal benim şablon yardımcıları kullanmaya başlayana kadar gayet iyi çalışıyor.
404 hata sayfası şablonu için örnek bir kod aşağıdaki gibidir :
{% 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 %}
Benim Silex app kullanma: hata için PHP kodu
$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);
});
Ben
{{ url('home') }}(Bu yardımcı ve yol mükemmel diğer durumlarda işe yarıyor!) kez çıkarın Doğru işlenmiş bir site, ama çevirilerin olmadan alıyorum.
Yardımcısı ile aşağıdaki hatayı alıyorum:
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
Bazı yol ve bu adımlar bu sorunu gidermek için neden bu işin arkasında muhtemel sebebi ne olabilir ihtiyacım var. Tüm yardım için teşekkür ederiz.
CEVAP
Bu Silex bir sorun değil (an) - Her şey mükemmel benim yanımda çalışır (Silex1.2)
Uygulamanızda UrlGeneratorServiceProvider
kayıt yaptırdın mı ?
web/index.php
:
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
Ve gerçekten bu durumda url()
yerine path()
kullanmanız gerekir :
{{ path('home') }}
Nasıl özel hata sayfaları ASP.NET MVC ...
Özel asp.net MVC3 hata sayfaları...
jQuery Ajax hata işleme, Haritayı özel...
Nasıl JavaScript özel bir Hata oluştur...
Neden&; Sunucusu için ağ ile ilgili ve...