######知りたいこと
CakePHP3でidを参照に単一カラムを一括で更新したいです。
$saveData[]に更新するidとdelete_flagを配列で入れて以下を参考に
https://book.cakephp.org/3.0/ja/orm/saving-data.html#id12
とやればできるかと思ったのですが
うまくいきません。
######できていないこと
id | name | delete_flag |
---|---|---|
1 | 名前 | 0 |
2 | 名前 | 0 |
3 | 名前 | 0 |
更新する際にnameが空だとエラーがでているため、更新できませんでした。
リクエストデータをエンティティにマージさせて、複数レコードを一括で更新できればと更新できると考えています。
error
1'name' => [ 2 '_required' => 'This field is required' 3 ],
######コード
PHP
1// 保留の場合 2if($action === 'all_hold'){ 3 foreach($id as $value){ 4 $saveData[] = [ 5 'id' => $value, 6 'delete_flag' => 2, 7 ]; 8 } 9} 10//-------------------------------------------------------------- 11 12// 承認の場合 13if($action === 'all_approval'){ 14 foreach($id as $value){ 15 $saveData[] = [ 16 'id' => $value, 17 'delete_flag' => 3, 18 ]; 19 } 20} 21//-------------------------------------------------------------- 22 23 24// 削除の場合 25if($action === 'all_delete'){ 26 foreach($id as $value){ 27 $saveData[] = [ 28 'id' => $value, 29 'delete_flag' => 1, 30 ]; 31 } 32} 33//-------------------------------------------------------------- 34 35// 更新処理(ここが書き方がわからないです) 36$hogesTable = TableRegistry::get('Hoges'); 37$hoge = $hogesTable->get($value); 38$entities = $hogesTable->patchEntity($hoge, $saveData); 39//$entities = $hoges->newEntities($saveData); 40$result = $hoges->saveMany($entities); 41
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー