0

私はCakePHP1.3でまともな歴史を持っていますが、私の最初の2.x(この場合は2.3)アプリに取り組んでおり、誰かが助けてくれることを望んでいるURL生成に関するいくつかの奇妙な問題にぶつかりました私と一緒に。

  1. 同じアクションに別の拡張子()を付けて送信したいフォームがあり.csvます。そうするために、私は試しました:

    # FYI, $this->here = /admin/activities/index
    $this->Form->create('Activity', 
      array( 'admin' => true, 'controller' => 'activities', 'action' => 'index', 'ext' => 'csv' )
    

    フォームアクションとして取得するのはaction=".csv"です。

  2. 考えられる回避策として、URLを文字列として設定してみました- 'url' => '/admin/activities/index.csv'。これでフォームは正しく表示さactionれますが、フォームを送信するとエラーが発生します。

    Error: The action admin_index.csv is not defined in controller ActivitiesController
    

ここで何が欠けていますか?2.3 FormHelperとRouterのドキュメント、および「スキップ」した各バージョン(2.1、2.2、2.3)の移行ドキュメントを読みましたが、飛び出すものは何も表示されませんが、表示されません。私が何かを逃したのは初めてです。

4

1 に答える 1

0

#2で述べたことは、回避策ではなく、URLを指定する適切な方法です。あなたが得るエラーはおそらくあなたがRouter::parseExtensions()あなたのroutes.phpに欠けているためです

編集してください。明確にするために、Form-> create()は次のようになります。

$this->Form->create('Activity', 
  array('url' => array(
     'admin' => true, 'controller' => 'activities', 'action' => 'index', 'ext' => 'csv'
  ))
);

追加するRouter::parseExtensions()Router::parseExtensions('csv')、routes.phpに.csv拡張子のみを解析する場合

于 2013-03-26T12:05:19.583 に答える