私の zend アプリケーションにはいくつかのモジュールがあります。私のモジュールのビュースクリプトの1つで、そのようなURLを作成しました
$links['create'] = $this -> url(array("controller" => "roles", "action" => "create"), "custom");
これにより、Route "custom" is not defined というエラーが発生します。
ルートとは?それをどこでどのように定義するか?
私の zend アプリケーションにはいくつかのモジュールがあります。私のモジュールのビュースクリプトの1つで、そのようなURLを作成しました
$links['create'] = $this -> url(array("controller" => "roles", "action" => "create"), "custom");
これにより、Route "custom" is not defined というエラーが発生します。
ルートとは?それをどこでどのように定義するか?
ブートストラップファイルで、次の関数を追加してルーティングを初期化しました
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よりもルートを追加しなかった場合は次のようになります
Zend Framework のマニュアルには、ルートとルーターに関する適切なドキュメントがあり、ルートを定義するいくつかの方法が説明されています。
非常に基本的なレベルでは、ルートは URL を解析してパラメーター (どのコントローラーとアクションを使用するかなど) にするためと、その逆 (パラメーターを取得して URL を生成するため) の両方に使用されます。
目的のために、 ZF が URL を作成する方法url
を変更したくない場合は、呼び出しから「カスタム」部分を削除するだけでかまいません。