Belirli bir rotaya symfony azmini zorlayabilir?

3 Cevap php

Ben bu sırayla 2 güzergahlarını takip etmek zorunda olduğunu söylüyor:

Zip:
  url: home/:zip
  param: { module: home, action: results }

State:
  url: home/:state
  param: { module: home, action: results }

ve ben gibi bir yolu kullanın:

'@State?state=CA'

Why does it resolve to the Zip route? I thought when you specified the route name explicitly: '@State' that it did not parse the entire routing file and just used the specific route you asked for.

Ben sadece iki kez farklı bir parametre geçmek için aynı eylemi (sonuçlar) oluşturmak zorunda istemiyorum değişken adı (zip ya da devlet) dayalı verileri görüntülemek için aynı eylemi kullanmak mümkün istiyorum.

3 Cevap

Bunu farklı biçimleri tanıyacak böylece ihtiyaçlarını eklemeniz gerekir

Zip:
  url: home/:zip
  param: { module: home, action: results }
  requirements: { zip: \d{5} } # assuming only 5 digit zips

State:
  url: home/:state
  param: { module: home, action: results }
  requirements: { state: [a-zA-Z]{2} }

Ben size bir yardımcı bir rota adını kullanmak zaman adlandırılmış yol kullanması gerektiğini size katılıyorum rağmen bu, bunu düzeltmek gerekir.

Burada sorun, hem yönlendirme kuralları biraz aynı url (/ home /) giderir ve bağlantılar oluşturma zaman url oluşturmak için doğru adlandırılmış yol kullanır.

Eğer (örneğin / home / CA için) oluşturulur url tıkladığınızda gereksinimleri ek withouth o maçlar ve sizin "Zip" rota routing.yml dosyasındaki ilk kuralı maç olacak.

sadece neler olduğunu açıklamak için.

Bu does adında yolu kullanın. Sorun, URL'ler aynı (paramater isim alakasız) böylece tarayıcınızın URL yüklediğinizde Symfony istediğiniz hangisini bilmek için hiçbir yolu yoktur gibi, eşleşen ilk rota her zaman Zip olmasıdır.

requirements: gitmek için yoludur ekleme.