6

Cake Book の例にほぼ正確に従いました。

Router::mapResources('incidentReports');
Router::parseExtensions('json');

どちらも以前

require CAKE . 'Config' . DS . 'routes.php';

IncidentReportsController という私のコントローラー

class IncidentReportsController extends AppController {

関数を含むもの

index()
view($id)
add()
edit($id)
delete($id)

URL に移動

www.myurl.com/incidentReports.json

期待どおりにリクエストを index() 関数に送信します。

URL に移動

www.myurl.com/incidentReports/260.json

view() 関数にマップする必要がありますが、存在しない 260() 関数にマップしようとしています。

www.myurl.com/incidentReports/view/260.json

view() 関数にマップされ、適切に動作します。しかし、私の理解では、URL の「ビュー」は必要ないはずです。

4

3 に答える 3

4

同じ問題がありました。私の場合、URL のコントローラー名を変更することで修正できました。

動作しませんでした:http://www.example.com/entityName.json
正常に動作します: http://www.example.com/entity_name.json

于 2013-06-25T20:46:06.913 に答える
0

コントローラーがプラグイン内にある場合は、同様に指定する必要があります..

例: Router::mapResources('Plugin.Controller');

于 2014-10-01T05:30:33.550 に答える
0

documentationによると、あなたはすべてを正しく行っているので、よくわかりません。これ(有効にする必要があるルート)もルートに入れてみてください。

Router::resourceMap(array(
    array('action' => 'index', 'method' => 'GET', 'id' => false),
    array('action' => 'view', 'method' => 'GET', 'id' => true),
    array('action' => 'add', 'method' => 'POST', 'id' => false),
    array('action' => 'edit', 'method' => 'PUT', 'id' => true),
    array('action' => 'delete', 'method' => 'DELETE', 'id' => true),
    array('action' => 'update', 'method' => 'POST', 'id' => true)
));
于 2013-02-27T14:50:08.340 に答える