0

したがって、私のアプリは 1 つの場所で開発モードで実行され、ライブ サーバーでは運用モードで実行されます。いくつかの変更をライブに配置したところ、実稼働 DB (MySQL) に 1 週​​間か 2 週間存在したフィールドが、 への呼び出しによって検出されませんModel::read()。コードは次のとおりです。

    $this->Order->id = $id;
    $created = $this->Order->field('created');
    $this->Order->contain(array('User', 'OrderStatusChange', 'Cart' => array('CartItem' => array('conditions' => array('deleted_date' => null, 'created <=' => $created)))));
    $this->request->data = $order = $this->Order->read();

開発環境の同じコードはすべてのフィールドを返します。new(ish) フィールドが本番環境にありません。/app/tmp/cache/models 内のすべてのファイルを削除しましたが、問題は解決していません。本番サイトはConfigure::write('debug', 0)、開発サイトは 2 に設定されています。

何か案は?

ありがとう

4

1 に答える 1

0

すでにキャッシュをクリアしましたが、問題はまだ存在します。そこで、ここで 1 つのことを指摘します。

$this->Order->contain(...)ここでcontain()and を使用している場合、動作をモデルcontain()にアタッチする必要があります。Containableあなたのコードは、それを添付するかどうかを明確にしません。そうでない場合は、次のように添付することをお勧めします。

.....
$this->Order->Behaviors->attach('Containable');  // attach Containable behavior
$this->Order->contain(...);
......
于 2013-11-04T18:48:08.027 に答える