Мне интересно, как я могу сделать красивые URL с помощью Zend Framework?
немного фона:
Мой URL сейчас: www.website.com/profile/43
структура базы данных:
id userid name
1 43 John
.. ... ...
и мой роутер:
$router->addRoute('getUserid',
new Zend_Controller_Router_Route(
'/profile/:id',
array(
'module' => 'profile',
'controller' => 'social',
'action' => 'index'
)
)
);
очевидно, я хотел бы, чтобы URL был: www.website.com/profile/John
Из того, что я изучаю, похоже, я могу многое сделать с роутером, добавить регулярные выражения и т. Д., Но ничего о том, как заменить id
, как в моем случае, нет.
Мне нужно сделать запрос, чтобы узнать имя, и я подумал сделать это в предзапуске и использовать результат в качестве переменной по умолчанию, но я не знаю id
, поскольку $front->getRequest()->getParams()
не в наличии:
$name = // do query to find out the name;
$router->addRoute('getUserid',
new Zend_Controller_Router_Route(
'/profile/:id',
array(
'id' => $name,
'module' => 'profile',
'controller' => 'social',
'action' => 'index'
)
)
);
может быть, я иду на это с неправильной точки. Есть идеи?
спасибо.