#####環境
・Apache
・Mac OS Sierra
・PHP Version 7.0.14
・mysqlnd 5.0.12
・CakePHP3
#####やりたいこと
データベースに登録する際、コントローラー側で行う
セレクトボックスとチェックボックスの処理を簡潔にしたい。
#####今のコード
SampleComponent.php
PHP
1//SelectBoxの関数 2public function SelectBox($value,$name){ 3 $SelectBox = Configure::read('SelectBox'); 4 $value = $SelectBox[$name][$value]; 5 return ($value); 6}
SampleController.php
PHP
1//セレクトボックスをデータベースに登録するための記述 2 if ($this->request->is(['patch', 'post', 'put'])) { 3 $data02 = $this->request->data('data02'); 4 $data02 = $this->Sample->SelectBox($data02,'hoge'); 5 $this->request->data['data02'] = $data02; 6}
#####補足
皆さんはセレクトボックス・チェックボックスをデータベースに登録する際
どのように記述していますか?
登録する項目数が多いため、なるべく1行で簡潔に書きたいのですが、、、
#####追記
edit.php
PHP
1echo $this->Form->input('column01', [ 2'templates' => [ 3'label' => '<th><label{{attrs}}>名前</label></th>', 4'input' => '<td><input type="{{type}}" name="{{name}}"{{attrs}} /></td>', 5'inputContainer' => '<tr>{{content}}</tr>', ] 6]);
生成されているHTML
HTML
1<select name="column01" id="column01"> 2<option value="name00"></option> 3<option value="name01">サンプル</option> 4<option value="name02">サンプル2</option> 5</select>
#####補足
DBに登録されるのは最終的に日本語にしたいため
配列とvalueを照合して値をDBにいれるようにしています。
が選択された場合、コントローラ側に渡される値name01
をあらかじめ用意しておいた配列
$array['name01']=>サンプル,$array['name02']=>サンプル2
と照合して、値を返しています。
回答2件
あなたの回答
tips
プレビュー