CakePHP SaveAll()メソッドでレコードを更新しようとしていますが、更新する代わりに新しい行が追加されます。saveAll()は更新する代わりに新しい行を挿入します
私のモデルは以下の通りです:ストアhasOneの地図
class Store extends AppModel {
var $name = 'Store';
var $hasOne = array(
'Map' => array(
'className' => 'Map',
'foreignKey' => 'store_id',
'dependent' => true,
'exclusive' => true
)
);
}
私の編集フォームは、特定のレコードを更新するためにCakePHPを指示する店舗ID(隠されたフィールドを)持っています。
<?php echo $this->Form->input('Store.id'); ?>
<?php echo $this->Form->input('Store.name', array('label' => 'Store name', 'required')); ?>
<?php echo $this->Form->input('Map.latlng', array('label' => 'Map location', 'required')); ?>
ストアコントローラのマイエディット方法は次のとおりです。
if ($this->Store->saveAll($this->data)) {
$this->Session->setFlash('Store has been updated.');
$this->redirect(array('controller' => 'store', 'action' => 'admin_index'));
}
ストアを編集するたびに、ストア名は正常に更新されますが、CakePHPはマップテーブルに新しい行を挿入し続けます。
ここに何か不足していますか?あなたではなく、その後の保存、データを更新する場合のおかげ
追加情報
私のデバッグ(の$ this - >データ)が続く
Array
(
[Store] => Array
(
[id] => 52
[name] => Sena The Accessorizer
)
[Map] => Array
(
[latlng] => 3.1580681, 101.7126311
)
)
'$ this-> data'のデバッグを表示 – Dunhamzzz
@Dunhamzzzの質問が更新されました。ありがとう –
@ジョン - あなたのフォームは何ですか?>作成しますか? – Dave