app.request.attributes.get('_route')
ile geçerli rota ismini öğrenebilirsiniz, fakat bir URL'den almak mümkün değil midir?Symfony2 URL ile yol tarifi al
app.request.attributes.get('/about')
gibi bir şey?
app.request.attributes.get('_route')
ile geçerli rota ismini öğrenebilirsiniz, fakat bir URL'den almak mümkün değil midir?Symfony2 URL ile yol tarifi al
app.request.attributes.get('/about')
gibi bir şey?
Bunun için Router
sınıf/hizmet kullanabilirsiniz:
public function indexAction()
{
$router = $this->get('router');
$route = $router->match('/foo')['_route'];
}
fazla bilgi
the documentation yılında Geçenlerde maçı() yöntemi için mevcut isteğin HTTP YÖNTEMİ kullanır keşfetti isteği eşleştirin. Örneğin, bir PUT isteği yapıyorsanız, bir PUT yöntemiyle verdiğiniz URL'yi eşleştirmek için bir MethodNotAllowedException istisnasıyla sonuçlanacaktır (örneğin, başvuru sahibinin alınması).
Bu geçici çözümü kullanıyorum Bunu önlemek için: o zaman bir GET isteği olduğu doğrudur olmayabilir Ancak// set context with GET method of the previous ajax call
$context = $this->get('router')->getContext();
$currentMethod = $context->getMethod();
$context->setMethod('GET');
// match route
$routeParams = $this->get('router')->match($routePath);
// set back original http method
$context->setMethod($currentMethod);
. Davanızda bir POST talebi olabilir.
Bu sorunu Symfony topluluğuna gönderdim. Ne önerdiklerini görelim.
'HEAD' yöntemini 'GET' yerine zorlayabilirsiniz. Önbellek dosyalarınızda 'appDevUrlMatcher.php' veya' appProdUrlMatcher.php' seçeneğini işaretlerseniz, 'HEAD' yönteminin her yol için her zaman izinli olduğunu görürsünüz. Bununla birlikte, hangi yöntemin başvurucuyu eşleştirmek için kullanıldığını tahmin etmeniz gerekmeyecektir. – Elorfin
ben bile o iş thx var bu
$ref = str_replace("app_dev.php/", "", parse_url($request->headers->get('referer'),PHP_URL_PATH));
$route = $this->container->get('router')->match($ref)['_route'];
gibi etrafında çalıştı mutlak yolları kullanırken yöntemleri eşleşen MethodNotAllowed başlamıştı: =) – altore
bunu kullandım ama geçerli değil. Symfony'deki Rota servisi mevcut talep durumuna sahiptir. Gerçek rotayı elde etmek için POST, PATCH veya PUT veya başka herhangi bir şekilde olabilecek HTTP yöntemiyle istekte oluşturulan bağlamı ayarlamanız gerekir. –