protected function _initRoutes()
{
$this->router = $this->frontController->getRouter();
$route = new Zend_Controller_Router_Route(
':username',
array(
'module' => 'default',
'controller' => 'view',
'action' => 'profile',
'username' => ':username'
)
);
$this->router->addRoute('profile', $route);
}
Что он должен сделать, это соответствовать этому:Что случилось с этим маршрутом?
http://www.mydomain.com/something
To:
http://www.mydomain.com/view/profile/username/something
, который работает. Беда в том, когда я иду:
http://www.mydomain.com
Я получаю аа длинную ошибку в базе данных, которая существует в основном потому, что она соответствует (и это не должно быть):
http://www.mydomain.com/view/profile
Но без имени пользователя , что требуется.
Маршрут определен в моем файле начальной загрузки. Что я должен сделать, чтобы он работал правильно?
EDIT:
Кажется, проблема с помощником URL-адрес в моих взглядах. Что не так с этими URL-адресами?
<?php
echo $this->url(array('module' => 'default',
'controller' => 'view',
'action' => 'profile',
'id' => $this->escape($m->id)),
null,
true);
?>
Или:
<?php
echo $this->url(array('module' => 'default',
'controller' => 'my-account',
'action' => 'write-message'),
null,
true);
?>
Да, эта линия абсолютно бесполезна – andho
Это не только бесполезно, но и является причиной проблемы. Имея значение по умолчанию для имени пользователя, оно всегда будет иметь значение, что означает, что этот маршрут всегда будет соответствовать. – linead
Когда я удаляю эту строку, www.mydomain.com снова работает отлично, но когда я перехожу на сайт www.mydomain.com/username, я получаю сообщение об ошибке: «имя пользователя не указано» –