2

私が行ったことは、Library::locate を使用してコントローラを見つけ、ホワイトリスト プロパティに基づいて Router::match を呼び出すことです。また、多くのモデルが使用する共有コントローラーもあり、そこにホワイトリストがあるモデルで検索を使用します。これは一種の機能ですが、ルートを逆にしようとすると問題が発生し、「パラメーターの一致が見つかりません」という例外が発生します。たとえば、以下の例。では、大きなものに対する適切な答えがない場合、このルート マッチが失敗する理由を知っていますか?

Router::connect(
    '/api/3/vouchers/{:id}/{:action:(handout|generate|give)}',
    array('http:method' => 'POST', 'controller' => 'Vouchers', 'type' => 'json')
);

$result = Router::match(array(
    'controller'=>'Vouchers',
    'action'=>'generate',
    'id' => '{:id}', // *
    'http:method' => 'POST',
    'type'=>'json'
));

*: id の値として {:id} を使用する理由は、リンクを作成するのではなく、ルートを表示したいからです。

4

0 に答える 0