1

私はZendを初めて使用するので、これについては助けてください.

ここに非常に古い質問があります:

これは私の現在のURLです:

www.sample.com/blog/detail/index/id/5

欲しかった:

www.sample.com/url-rewrite-tips

さて、私は次のコードをbootstrap.phpに入れました

$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route(
                'url-rewrite-tips',
                array(
                     'module'     => 'blog',
                     'controller' => 'detail',
                     'action'     => 'index',
                     'id'         => '5'
                )
);
$router->addRoute('url-rewrite-tips', $route);

それは機能していましたが、ハードコードでもあります。bootstrap.php で param を取得しようとしましたが、失敗しました。

現在、100以上のIDを持っています。ただし、 foreach(){} の index.pthml に入れようとすると、失敗します。記事ごとに DB の名前を書き換えていますが、どうすればいいですか?

configs や .htaccess を使用しない方がよい

ありがとうございます。

4

1 に答える 1

0

私がいつもしていることはroutes.ini、ブートストラップで実行を追加することです:

protected function _initRoutes()
{
    $this->bootstrap('FrontController');
    $front = $this->getResource('FrontController');
    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'production');
    $router = $front->getRouter();
    $router->addConfig($config, 'routes');
}

次にroutes.ini

[production]

routes.content.route = "/s/:permalink"
routes.content.defaults.controller = "content"
routes.content.defaults.action = "show"
routes.content.reqs.permalink = "[a-z0-9-]+"

したがって、アクセスhttp://mydomain.com/s/some-nice-permalinkルーティングがContentController ShowAction()メソッドに移動すると、パーマリンクがパラメーターとして取得され、データベースで検索されます。

もちろん、データベースに一意のパーマリンクを作成するためのメソッドも作成する必要があります。

于 2012-11-20T12:11:03.010 に答える