0

CakePHP の requestAction オブジェクトに問題があります。モデルの最後の 5 つの結果を取得したいのですが、ビュー テーブルを使用しています。

だから私の行動で私は入れました$this->Model->useTable = 'models_view';

しかし、アクションを呼び出すと$this->requestAction(array('controller'=>'models','action'=>'lastFive'));、ケーキはデフォルトのテーブルを使用しますが、ビューテーブルを使用する必要があります...

また、最初のテーブルに存在しないフィールドで条件を使用しているため、エラーが発生します(ただし、ビューには存在します)。

誰かアイデアがあれば?ありがとう

4

1 に答える 1

1

モデルが初期化されると、CakePHP はデータベーステーブルのスキーマをキャッシュするため、実行時の変更Model->useTableは適切に機能しません。

別のテーブルに切り替えて、キャッシュされたスキーマをクリアするには、次を使用します

$this->MyModel->setSource('tablename');

これにより、モデル内のキャッシュされたスキーマ情報がクリアされ、「新しい」テーブルの情報で更新されます。'tablename' は 'table' またはデータベース 'view' のいずれかです

ドキュメンテーション; http://api.cakephp.org/2.3/source-class-Model.html#1100-1125

于 2013-03-18T20:28:24.740 に答える