2

私はケーキPHPが初めてです。私はcakePHPの既存のウェブサイトに取り組んでいました。クライアントの要件により、データベースのテーブルの 1 つに新しい列を追加する必要がありました。最近作成したフィールドを除くすべてのフィールドに入力できます。問題は、足場中にそれが存在しなかったためだと思います。しかし、私はこの問題を解決する方法を知りません。

array('fields'=>'*') を追加するだけで、データベースからフェッチしながらそのフィールドにアクセスできます$this->Model_name->find('first',array('fields'=>'*'))

$this->request->data['ModelName']['field_name'] = 'value'; 保存機能を使用する前に、新しい挿入を作成するためにこれを試しました。しかし問題は、私が追加したこの新しいフィールドを除いて、すべてのフィールドが挿入されることです。

私は物事が明確であることを願っています。

4

2 に答える 2

2

あなたの場合、新しいフィールドを保存できないという2つの間違いを思い出してください。

1 データベース テーブルに新しいフィールドがあることを確認します。
2 私の製品システムでは、デバッグを 0 に設定したため、モデルと永続キャッシュが更新されません。

モデルと永続的なキャッシュをクリアするには、コマンド ラインでキャッシュを設定Configure::write('debug', 2);するapp/Config/Core.phpか、キャッシュを手動で削除します。

rm -f app/tmp/cache/models/cake_model_*  
rm -f app/tmp/cache/persistent/cake_core_*
于 2013-01-21T12:36:13.010 に答える
2

ドキュメントをお読みください - ModelName は CamelCased です:

$this->request->data['ModelName']['field_name'] = 'value';

この新しいフィールドだけが追加されない場合は、(永続/モデル) キャッシュをクリアしていない可能性が非常に高くなります。Cake が新しく追加された db フィールドを認識できるようにする必要があります。

于 2013-01-21T11:30:54.417 に答える