0

id フィールドを持たず、フィールド 'app_no' を主キーとして使用するテーブルがあります。

今、このモデル/テーブルに保存する必要があります...しかし、モデルに $id がないため、失敗します。

Model->save()なしで保存できる方法はあります$idか?

備考: テーブルは他のプロジェクトと共有されているため、テーブル構造を変更することはできません。

4

2 に答える 2

2

Model::updateAll()代わりに使用してください。最初のパラメーターは新しい値を受け取り、2 番目のパラメーターは条件を受け取ります。

だからあなたはできる

$this->Model->updateAll(array("Model.value" => "'value'"),array("Model.name" => "name123"));

save()ただし、 とは異なり、これは MySQL 式を使用することに注意してください。

さて、最初は主キーがないように聞こえました。別の名前の PK フィールドだけが必要な場合は、モデルで次のようにします。

public $primaryKey = 'app_no';

または、Model オブジェクトでプロパティを直接設定することもできます

$this->Model->primaryKey
于 2013-06-10T12:21:12.820 に答える
1

モデルに主キーを次のように設定できます。

//Model 
var $primaryKey = 'app_no';

その後、保存は必要な方法で機能します。

次のリンクを使用して「primaryKey」セクションを確認してください: http://book.cakephp.org/2.0/en/models/model-attributes.html

于 2013-06-10T12:24:45.780 に答える