2016-05-13 8 views
2

Cake 2.xの使用RESTfulなトラフィックをユーザコントローラにUserManagementプラグインにルーティングしようとしています。次のようにCakephpプラグイン付きRESTfulルーティング

私のルートは以下のとおりです。

// re-redirect root traffic to login 
Router::connect('/', array('plugin'=>'UserManagement','controller' => 'Users', 'action' => 'login')); 

CakePlugin::routes(); 
Router::mapResources(['users']); 

Router::parseExtensions(); 

私も試してみました:事前に

users/1.json 

{ 
    "code": 404, 
    "name": "Action UsersController::51() could not be found.", 
    "message": "Action UsersController::51() could not be found.", 
    "url": "\/users\/51.json" 
} 

ありがとう:私はresful URLを呼び出すと

Router::mapResources(['UserManagement']); 

私は次のエラーを取得します。コンフィギュレーション・アプローチを超える

答えて

1

後CakePHPs規則は、あなたがどこにも行うようにプラグインの構文、つまり先頭に追加プラグイン名を使用して、プラグインを指定し、コントローラ名

Router::mapResources('UserManagement.Users'); 

この意志のからドットでそれを分離しますコースはまた、すなわち

/user_management/users/51.json 

代わりにのみ

/users/51.json 
、リクエストURLにプラグイン名を使用する必要が

プラグインを使用したいが、まだプラグインに接続している場合は、prefixオプションのトリックを試すか、デフォルト値の/を指定すると、ルータはプラグイン名を接頭辞(実際のprefix routingと混同しないでください)。

Router::mapResources('UserManagement.Users', array(
    'prefix' => '/' 
)); 

も参照してください

+0

はあなたに感謝が、それはまだ動作しません - 404 "名":「アクションがUserController :: 51( )が見つかりませんでした。 "、 –

+0

@AlanAおそらくプラグがないためですつまり、あなたは '/ user_management/users/51.json'の代わりに'/users/51.json'にアクセスしています。あなたが後にしているものが以前のフォーマット、つまりプラグインに接続しているときに '/ users/... 'を使用している場合は、あなたの質問にそれを指摘してください。 – ndm

+0

はい私の質問に書かれているように、私はちょうどURLにコントローラ名を使用していました。プラグインの名前を使用しても動作します:)もし私が 'ユーザーのもので、プラグインの名前ではなくURLを使用したいのであれば、それも可能ですか? –

関連する問題