Genel parametre ekleSymfony2 - Her istek için yönlendirmeye genel bir parametre veya _locale'ye benzer oluşturulan URL nasıl eklenir?
Tüm yollar için parametre ve kernel İstek İşleyicisi'nde parametre ayarı yapmayı deneyin. yönlendirme
İşleyici içindemea_crm:
resource: @Crm4Bundle/Resources/config/routing.yml
prefix: /{_applicationid}
defaults: { _applicationid: 0 }
requirements:
_applicationid: |0|1|2|3|4|5|6
- varsayılan değeri 0
Güncelleme 1 i kurulum dinleyici maksimum - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
Ben setup
$request->attributes->add(array(
'_applicationid'=>$appCurrentId
));
$request->query->add(
array(
'_applicationid'=>$appCurrentId
)
);
$request->query->set('_applicationid',$appCurrentId);
ve hala rotalara sahip bu parametreyi deneyin öncelik
dinleyici kurulumunda 0tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 255 }
public function onKernelRequest(GetResponseEvent $event)
{
$event->getRequest()->request->set('_applicationid',1);
return ;
ve hala bu parametre yönlendirme olduğunu gerekmez.
onun tuhaf 2 UPDATE - ı Symfony'nin \ Bileşen \ Yönlendirme \ Yönlendirici dökümü
yöntemdepublic function matchRequest(Request $request)
....
var_dump($matcher->matchRequest($request));
die();
ve
dizisini almak (boyut = 4) ' _controller '=> string' Mea \ TaskBundle \ Controller \ TaskListController :: viewOneAction '(uzunluk = 59) ' _applicationid '=> dize' 1 '(uzunluk = 1) 'kimlik' => dizisi '700' (uzunluk = 3) '_route' => dizisi 'MeaTask_View' (uzunluk = 12)
böylece orada
_applicationid ancak URL'ler i yok bulunmamakta http://crm4.dev/app_dev.php//u/logs/list herhangi bir fikir:mea_crm:
resource: @MeaCrm4Bundle/Resources/config/routing.yml
prefix: /{_applicationid}
defaults: { _applicationid: null }
requirements:
_applicationid: |1|2|3|4|5|6
burada gibi bağlantıları burada
routing.yml olduğunu var?
GÜNCELLEME 3
burada dinleyici
CrmApplicationRequestListener içindephp app/console debug:event-dispatcher kernel.request
Registered Listeners for "kernel.request" Event
===============================================
------- ---------------------------------------------------------------------------------- ----------
Order Callable Priority
------- ---------------------------------------------------------------------------------- ----------
#1 Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure() 2048
#2 Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest() 1024
#3 Symfony\Component\HttpKernel\EventListener\DumpListener::configure() 1024
#4 Mea\Crm4Bundle\Listener\CrmApplicationRequestListener::onKernelRequestInit() 255
#5 Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest() 128
#6 Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest() 48
#7 Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest() 32
#8 Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest() 16
#9 FOS\RestBundle\EventListener\BodyListener::onKernelRequest() 10
#10 Symfony\Component\HttpKernel\EventListener\TranslatorListener::onKernelRequest() 10
#11 Symfony\Component\Security\Http\Firewall::onKernelRequest() 8
#12 Mea\Crm4Bundle\Listener\CrmApplicationRequestListener::onKernelRequest() 0
#13 Symfony\Bundle\AsseticBundle\EventListener\RequestListener::onKernelRequest() 0
------- ---------------------------------------------------------------------------------- ----------
:: onKernelRequestInit
i kurulum onKernelRequestInit olduğunu ve artık görünür. {_applicationid: 0}: dinleyici ayarlanan 0 değil geçerli gerçek _applicationid
symfony ürettiği her yolu varsayılan _applicationid sahip
Ama yine ben yönlendirme varsayılan değişmesi gerekir. Her yönlendirme için mevcut _applicationid ekle mümkün değil. Yönelticide varsayılanı değiştirmem gerekiyor.Şu anda problemin açık olduğunu umuyorum.
Ben de özel yönlendirme yükleyici oluşturmaya çalışın 4 GÜNCELLEME - burada soru symfony2 add dynamic parameter for routing, try with custom loader
Yönlendirme parametresini routing.yml içinde tanımlarken, istek sorgu parametrelerine otomatik olarak eklenir. Nitekim bunu niteliklere eklemek ister misiniz? – mblaettermann
** Uygulamanızdaki her bir ** rotayı, her yol yapılandırmasını bir 'kaynağa 'koymadan bu öneklere sahip olmak/izin vermek istiyor musunuz? – nifr
Evet, tüm yollarda _applicationid'i istiyorum. Kernel istek dinleyicisinde var var ama nasıl ayarlanacağını bulamıyorum - $ request-> query-> setini ('_ applicationid', $ appCurrentId); - ama hala yollar var _applicationid = 0 –