MYSQLにARRAY配列を入れてデータの出し入れをしたいです。
Peopleテーブル
|id| name |
|9|{"data1":"aaa","data2":"bbb","data3":"ccc"}|
edit.ctp
<?=$this->Form->create($entity, ['type'=>'post', 'url'=>['controller'=>'people', 'action'=>'update']]) ?> <?=$this->Form->hidden('People.id') ?> <?=$this->Form->text('People.name') ?> <?=$this->Form->submit('送信') ?> <?=$this->Form->end() ?>
PeopleController.php
public function edit(){ $entity=$thie->People->get('9'); //Peopleテーブルから取得 $name=json_decode($entity['name'],true); //nameを取り出し $data1=$entity['data1]; //aaaを取り出し $thie->set('entity',$data1); //この値をフォームに表示したい }
dbの配列の値を取り出すことができたのですが、
その値をフォームに表示したいのですが、
どのようにして良いのかわかりません。
また、取り出して変更した値を
DBに保存もしたいです。
PeopleController.php
public function update() { if ($this->request->is('post')){ $data=$this->request->data['People']; $entity=$this->People->get($data['id']); $this->People->patchEntity($entity,$data); $this->People->save($entity); } return $this->redirect(['action'=>'index']); }
ご教授お願いします。
テーブル部分についてはマークダウンのテーブルレイアウトの([表の挿入]ボタン)方が見やすくなるので調整してください。見出し装飾されてしまってていると実際の情報が正しくくみ取れませんので。
MySQL の Array に JSONをいれたりだしたりしたらエラーが出なかったけ?(JSON型ってのがあったきがするが この手のDBMS拡張型はCAKEPHPではサポートされてない気が)
DBから取り出して、data1に入っている aaa をprint_rすると出力はされているのですが、これをフォームに表示しようとしたときに躓いております。
うまく取得されているのか、取得結果が文字列としてなら展開して、オブジェクト(ハッシュ配列)それをうまくループさせてだな
あなたの回答
tips
プレビュー