私はZF 1でモジュール構造を使用せずに開始したプロジェクトウィッチャを使用しました。ユーザー管理のためにモジュール構造 を配置する必要があります。ZF Zend_Controller_Router_Route_Moduleモジュールのデフォルトルートを使用して、そのまま使用する
私の問題 "default"ルートはコントローラ/:action /:idとモジュールルート
と一緒に行かなければなりません:module /:controller /:action /:id ZFからのデフォルトは1です。 id:
私の "ロジック"には:idフィールドが必要です。どうすればこの作業をすることができますか?私がしようとしてきた何
に来た:
protected function _initModuleAutoload()
{
$modelLoader = new Zend_Application_Module_Autoloader(
array('namespace' => 'DM',
'basePath' => APPLICATION_PATH . '/modules/default')
, array('namespace' => 'UM',
'basePath' => APPLICATION_PATH . '/modules/users')
);
$modelLoader->addResourceType('service', 'services', 'Service');
$modelLoader->addResourceType('serviceplugin', 'services/plugins', 'Service_Plugin');
return $modelLoader;
}
public function _initFrontController()
{
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route1 = new Zend_Controller_Router_Route(
':module/:controller/:action/:id/',
array(
'id' => '\d+'
, 'module' => 'default'
, 'controller' => 'index'
, 'action' => 'index'
)
);
$router->addRoute('default', $route1);
$front->addModuleDirectory(APPLICATION_PATH . "/modules/");
$front
->registerPlugin(new Far_Access_Plugin_Identity(), 1)
->registerPlugin(new Far_Access_Plugin_Access(), 2)
->throwExceptions(true)
;
return $front;
}
はまた、代わりにデフォルトのユーザーのための第2の経路を作成しようとしましたが、うまくいきませんでした。
アイデア?私は間違って何をしていますか?
私がこのリンクを提供したとき、freenodeのircのヘルプは#zftalkチャンネルで与えられました。
Bittarman:または、単にだけで ますZend_Controller_Router_Routeに連鎖 Zend_Controller_Router_Route_Moduleですのインスタンスを追加します:その中にIDをcrash82:それは[\ D] +
Bittarmanなければならないので、IDに要件を追加、falseのようなidのデフォルト設定は です。
Bittarman:また、_initModuleAutoloadは、無意味 Bittarmanです:モジュールディレクトリにあなたの「デフォルト」モジュールを持つ、ちょっと 間違っ
Bittarmanです:あなたは_initFrontController
Bittarmanを持つことにより、作業 からfrontcontrollerリソースを停止しますので、 resources.frontControllerは動作しなくなります。crash82:ハム...だから、多くの問題:(ので、私はちょうどアプリケーションディレクトリに 「デフォルト」モジュールを配置することができますし、他のモジュール は、モジュール/パスからロードし続けることができる
?Bittarman:はい:)
crash82:あなたはより多くのそのような作成行けばそう、あなたは終わり:と、ブートストラップを持っている各モジュールは、独自のモジュールのリソースローダ
Bittarmanを提供: Bittarmanことをしようとするつもり各モジュールに2つずつ追加されています。
ビットタマン:あなたはどれくらい多くの人々が驚いているでしょうか。
Bittarman:S/THT /その/
での現在のバージョンではデフォルトのルーティングを開始する可能性がありますZFはルーティング時に常にモジュールをテストします。デフォルトルートを使用している場合、モジュールを追加してもルーティングには影響しません。モジュールを最初のパラメータとして追加するだけで動作します。あなたが望むなら、 'Zend_Controller_Router_Route_Module'のコードをチェックしてください。 – RockyFord
答えの一部であるはい。 :-)ありがとう –