#####環境
・Apache
・Mac OS Sierra
・PHP Version 7.0.14
・mysqlnd 5.0.12
・CakePHP3
#####内容
画像のデータベース登録と編集方法について
以下の内容で意図した動作はしてくれているのですが
より、実戦的なプログラミングの記述を教えて欲しいです。
edit.php
PHP
1//データベースに値がある場合は表示、ない場合は非表示 2if($hoges->カラム名 != ''){ 3 $DBimage = '<img src="'.$this->request->webroot.'/images/'.$hoges->カラム名.'" />'; 4}else{ 5 $DBimage = ''; 6} 7 8echo $this->Form->input('カラム名', [ 9 'type' => 'file', 10 'value' => $value, 11 'templates' => [ 12 'inputContainer' => '<tr><th>画像</th><td>'.$DBimage.'{{content}}</td></tr>', 13 ], 14 'label' => false, 15]);
HogesController.php
PHP
1//$img['error']が4の場合はデータベースと同じ画像名 2$img = $this->request->data['カラム名']; 3if($img['error'] === 4){ 4 $this->request->data['カラム名'] = $hoges->カラム名; 5}else{ 6//画像が添付されている場合は画像を登録 7 $ext = $img['name']; 8 $time = time(); 9 $name = md5(uniqid(rand(), 1)).$time.'.'.$ext; 10 move_uploaded_file($img['tmp_name'],'../webroot/images/'.$name); 11 $this->request->data['カラム名'] = $name; 12}
#####補足
PHP
1if($img['error'] === 4){ 2 $this->request->data['dbo59'] = $dbackorder->dbo59; 3 }
で、画像を選択していない場合は
データベースにある値を入れています。
ただ、これでは
データベースの値と画像ファイルを削除することができません。
その他のプログラミングも含め
この点も助言していただけると助かります。
※バリデーション以外の箇所でお願いします。
あなたの回答
tips
プレビュー