0

次のことを行うための最も効率的な方法を探しています。

詳細:

1つのコントローラー:

  • レポート

2ビュー:

  1. create_report
  2. view_report

create_reportには、 view_reportビューで使用される情報が収集されるフォームがあります。フォームに入力されたデータは、 $ this->session->data要素を介してcreate_reportビュー内で利用できることを知っています。

これに関するヘルプを探しています:

私がする必要があるのは、同じ情報($ this-> session-> data)をcreate_reportビューからview_reportビューに送信することです(コントローラーを介して)。

私がこれまでに持っているもの:

ただのリンク:

echo $this->Html->link('View Report', array('controller' => 'reports', 'action' => 'view_report'));

ただし、これはユーザーをview_reportビューに移動するだけです。$ this->session->dataの情報をそのビューに送信しません。

Jsヘルパーと関係があると思いますが、CakePHP2.xのこの状況を直接扱っている投稿は見つかりませんでした。

4

3 に答える 3

2

コントローラアクションcreate_reportによるデータ処理をバイパスし、それらをレポートビューに直接送信して、必要に応じてそこで検証を行うことができます。create_report.ctpビューでフォームの作成を変更するだけです。

$this->Form->create('Report', array('action' => 'view_report'));

データはview_reportアクションに直接送信され、$ this->request->dataで利用できます

于 2013-01-01T15:37:56.140 に答える
2

あなたが言うようにセッションにデータが保存されている場合は、view_reportビュー、またはその他のビューから直接データにアクセスできます。これを行うには、セッションヘルパーを使用できます。

$this->Session->read('whatever');

このアプローチを使用するには、SessionHelperがロードされていることを確認してください。詳細については、こちらをご覧ください。

または、他のデータと同じように、コントローラーで$ this-> setを使用して、セッションデータをビューに渡すことができます。

デバッグのために、現在のセッションの内容を確認したい場合は、ビューからセッションをダンプできます...

var_dump($this->Session);
于 2013-01-01T15:48:26.763 に答える
0

この方法も使用できます。この場合、任意のコントローラーの任意のアクションに送信できます。

$this->Form->create('Report', array('url' => '/my_contoller/my_action'));
于 2014-08-13T16:26:21.297 に答える