Ben sistemde rota en URL'lerin Zend Framework standart yönlendirici kullanıyorum.
Belirli bir URL için, ben (gerçek bir denetleyici ek olarak) bir kontrolör takma yoluyla erişmek istiyor
Örneğin,.
Gerçek URL:
/mymodule/mycontroller/myaction/*
Alias URL:
/mymodule/mycontrolleralias/myaction/*
mycontrolleralias gerçek bir denetleyici değil, ama ben (sorgu params ve tüm) mycontroller yönlendirmek için kendisine herhangi bir istekleri istiyorum
Bunu yapmak için, kurulum için bu yolu denedim:
$router->addRoute('controlleralias', new Zend_Controller_Router_Route(
':module/mycontrolleralias/:action/*',
array(
'module' => 'mymodule',
'controller' => 'mycontroller',
'action' => 'myaction'
)
));
Ama benim görüşüme yardımcısında ben bir URL oluşturmak için çalışırsanız:
$this->view->url(array('sort' => array('param1','param2')));
Ben bir hata alıyorum:
urlencode() expects parameter 1 to be string, array given
#0 [internal function]: __lambda_func(Array)
#1 /library/Zend/Controller/Router/Route.php(398): urlencode(Array, false, true)
#2 /library/Zend/Controller/Router/Rewrite.php(441): Zend_Controller_Router_Route->assemble(Array, NULL, false, true)
#3 /library/Zend/View/Helper/Url.php(49): Zend_Controller_Router_Rewrite->assemble(Array)
Benim özel rotadan yıldız (*) kaldırırsanız, hiçbir hata ortaya çıkar - ama onlar sorgu parametrelerine uyan olmayacak çünkü benim görünümünde oluşturulan adresler daha sonra doğru değil:
$router->addRoute('controlleralias', new Zend_Controller_Router_Route(
':module/mycontrolleralias/:action',
array(
'module' => 'mymodule',
'controller' => 'mycontroller',
'action' => 'myaction'
)
));
Ben de don't, bir parametre için bir dizi başarılı olursa, o not bir hata üretecektir bulduk:
$this->view->url(array('sort' => 'param1'));
Ne yazık ki ben (yukarıda gösterildiği gibi) 'tür' için bir dizi geçmesi gerekiyor
Herkes yanlış ne yapıyorum biliyor mu? Belki de bu başarmak için kolay bir yolu var mı?
Ben Zend Framework 1.9.0 kullanıyorum