Symfony Routes paramsi Passing

3 Cevap php

Ben dinamik bir sayfa görüntüler tanımlanmış bir yol var:

page_show:
  url:     /:domain_slug/:slug
  class:   sfPropelRoute
  options:
    model: Page
    type:  object
method: doSelectByDomain
  param:   { module: page, action: show }
  requirements:
    sf_method: [get]

Bu harika çalışıyor, ama şimdi ben belirli bir sayfaya yönlendirmek için Anasayfam URI istiyorum. Bunu yapmak için, ben :domain_slug ve sayfanın :slug değerlerini Ben ana olarak görüntülemek istediğiniz geçmek zorunda olduğunu varsayalım. Bu iyi, ama bunu yaparken hakkında gitmek nasıl bana gösteren herhangi bir belge ya da örnek izini görünmüyor olabilir.

Bir rota belirli değişken değerleri belirtmek mümkün mü? Bu durumda, ben (btw, bu sözdizimi işe yaramazsa) :domain_slug => portal, :slug => dashboard geçmek istiyorum. Esasen, böyle bir şey görünüyor anasayfa rota oluşturmak istiyorsanız:

homepage:
  url:   /
  class: sfPropelRoute
  param: { module: page, action: show, array( :domain_slug => portal, :slug => dashboard ) }
  options:
    model: Page
    type: object
    method: doSelectByDomain

Ama, bildiğiniz kadar farklı çalışır. Ben, farklı bir yöntem basit bir rota oluşturmak elle istek parametrelerini değiştirmek ve executeShow() yönteme iletmek varsayalım, ama bu daha zarif bir çözüm varsa ben oldukça kaçınmak istediğiniz bir kesmek :-) .

Teşekkürler.

3 Cevap

Ben çalıştım (ya da belki ben sadece doğru yapmak için başaramadılar) bunu yapmak için bir yol bulamadılar. Benim çözüm yolu oluşturmak ve uygun sayfa ayrıntıları belirtmek için çalışır, özel bir yöntemle geçmek oldu:

homepage:
  url:   /
  class: sfPropelRoute
  options:
    model: Page
    type: object
    method: doSelectHomepage
  param: { module: page, action: show ) }
  requirements:
    sf_method: [get]

doSelectHomepage() yöntemi ben rota kendisi değerleri hardcoding ile yapmak mümkün umuyordum tüm iş yapar.

Örneğin ... rotanın param anahtarı değerlerini tanımlayabilirsiniz:

homepage:
  url:   /
  class: sfPropelRoute
  param: { module: page, action: show, domain_slug: portal, slug: dashboard}
  options:
    model: Page
    type: object
    method: doSelectByDomain

En azından bir sigara propel / doktrin rota ile nasıl çalıştığını şu. Bunun çerçevesinde yol herhangi bir tür ile aynı olmalıdır varsayalım.

Aslında iş yaptım, bu rotalar tanımlandıkları sadece sipariş edildi. Ilk cevap doğrudur. Eğer "page_show" kuralı ÖNCE "anasayfa" kuralı eklendi eğer sizin için çalışmış olabilir. Yani belki Symfony düşündüğüm gibi ... Hayır, hayır, o kadar aptal değildir. Bu sadece kötü değil.