0

私の zend アプリケーションにはいくつかのモジュールがあります。私のモジュールのビュースクリプトの1つで、そのようなURLを作成しました

$links['create'] = $this -> url(array("controller" => "roles", "action" => "create"), "custom");

これにより、Route "custom" is not defined というエラーが発生します。

ルートとは?それをどこでどのように定義するか?

4

2 に答える 2

1

ブートストラップファイルで、次の関数を追加してルーティングを初期化しました

public function _initRouting() {

        // Get Front Controller Instance
        $front = Zend_Controller_Front::getInstance();

        // Get Router
        $router = $front->getRouter();
        $routedetialevent = new Zend_Controller_Router_Route(
            '/events/detail/:id',
            array(
                'controller' => 'events',
                'action'     => 'detail'
            )
        );
        $routeregister = new Zend_Controller_Router_Route(
            '/index/register/:id',
            array(
                'controller' => 'index',
                'action'     => 'register'
            )
        );

        $routerdetail = new Zend_Controller_Router_Route(
            '/commentaries/details/:id',
            array(
                'controller' => 'commentaries',
                'action'     => 'details'
            )
        );


        $router->addRoute('post', $routedetialevent);
        $router->addRoute('register', $routeregister);
        $router->addRoute('detail', $routerdetail);
    }

イベントにカスタムルートを追加したので、詳細ページにアクセスするたびにコメントをURLにIDを書き込む必要がないため、URLは次のようになります。

http:// localhost / example / events / detail / 3

私のURLよりもルートを追加しなかった場合は次のようになります

http:// localhost / example / events / detail / id / 3

于 2011-08-17T06:54:32.467 に答える
1

Zend Framework のマニュアルには、ルートとルーターに関する適切なドキュメントがあり、ルートを定義するいくつかの方法が説明されています。

非常に基本的なレベルでは、ルートは URL を解析してパラメーター (どのコントローラーとアクションを使用するかなど) にするためと、その逆 (パラメーターを取得して URL を生成するため) の両方に使用されます。

目的のために、 ZF が URL を作成する方法urlを変更したくない場合は、呼び出しから「カスタム」部分を削除するだけでかまいません。

于 2011-08-17T01:55:09.907 に答える