Ne bu rota nesi var?

1 Cevap php
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);
}

Ne yapmak gerekiyordu bu maçtan:

http://www.mydomain.com/something

Için:

http://www.mydomain.com/view/profile/username/something

Hangi çalışır. Ben giderken sorun:

http://www.mydomain.com

Ben (ve olmamalıdır) uyan çünkü orada temelde aa uzun veritabanı hatası alıyorum:

http://www.mydomain.com/view/profile

Ama adı olmadan, hangi gereklidir.

Rota benim önyükleme dosyasında tanımlanır. Ne doğru iş yapmak için ne yapmalıyım?

EDIT:

Bu sorun benim görünümlerinde url helper ile görünüyor. Ne bu URL'ler ile yanlış?

<?php

echo $this->url(array('module' => 'default',
                      'controller' => 'view',
                      'action' => 'profile',
                      'id' => $this->escape($m->id)),
                null,
                true);

                ?>

Veya:

<?php

echo $this->url(array('module' => 'default',
                      'controller' => 'my-account',
                      'action' => 'write-message'),
                null,
                true);

            ?>

1 Cevap

Çizgi

'username'   => ':username'

Sadece bu yolu görmezden ve hareket edecek hiçbir kullanıcı adı varsa, def rota dışına bırakırsanız, 'kullanıcı adı' Bu dize paramater adı varsayılan değeri ayarlama demektir.

protected function _initRoutes()
{
    $this->router = $this->frontController->getRouter();
    $route = new Zend_Controller_Router_Route(
        ':username',
        array(
            'module'     => 'default',
            'controller' => 'view',
            'action'     => 'profile',
        )
    );
    $this->router->addRoute('profile', $route);
}