id フィールドを持たず、フィールド 'app_no' を主キーとして使用するテーブルがあります。
今、このモデル/テーブルに保存する必要があります...しかし、モデルに $id がないため、失敗します。
Model->save()
なしで保存できる方法はあります$id
か?
備考: テーブルは他のプロジェクトと共有されているため、テーブル構造を変更することはできません。
id フィールドを持たず、フィールド 'app_no' を主キーとして使用するテーブルがあります。
今、このモデル/テーブルに保存する必要があります...しかし、モデルに $id がないため、失敗します。
Model->save()
なしで保存できる方法はあります$id
か?
備考: テーブルは他のプロジェクトと共有されているため、テーブル構造を変更することはできません。
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
モデルに主キーを次のように設定できます。
//Model
var $primaryKey = 'app_no';
その後、保存は必要な方法で機能します。
次のリンクを使用して「primaryKey」セクションを確認してください: http://book.cakephp.org/2.0/en/models/model-attributes.html