Zend Framework Route anahtar değeri yönlendirme

3 Cevap php

Ben bir alt etki yakalamak ve bir kategori olarak kullanmak için bir Hostname yol kullanıyorum. Daha sonra kontrolör, aksiyon ve anahtar / değer çiftleri için bir Router rota zinciri.

$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
 ':customer.ddc.:domain',
 array(
  'customer' => ':customer'
 )
);

$routerRoute = new Zend_Controller_Router_Route(
 ':controller/:action/*',
 array(
  'controller' => 'index',
  'action' => 'index'
)
);
$chainedRoute = $hostnameRoute->chain($routerRoute);
$frontController->getRouter()->addRoute('default',$chainedRoute);

Ben URI üzerinde anahtar / değer çiftleri dışındaki her şeyi yakalayabilir. Ekleyerek Params doldurulan değil isteği nesne neden olur.

Bu çalışır: http://category.mydomain.com/controller/action/

Bu etmez: http://category.mydomain.com/controller/action/username/frank

Herhangi bir öneriniz için teşekkür ederiz.

3 Cevap

Yolları zincirleme joker eşleme engelleyen bir hata gerçekten vardır. Hata açıklamasında yorumlar kod değişikliği sadece birkaç satır ile bu sorunu çözmede çok yararlı.

framework.zend.com/issues/browse/ZF-6654

/* olmadan kullanmaya çalışın.

$routerRoute = new Zend_Controller_Router_Route(
    ':controller/:action',
    array(
        'controller' => 'index',
        'action'     => 'index'
    )
);

olarak 12.5.2. Using a Router anlatılmıştır.

Önerilen yama benim için işe yaramadı. Ben başka bir yerde ZF web sitesinde bulunan başka bir yama uyarlanmış ve iyi iş gibi görünüyor: http://pastie.org/1815135