tp5獲取複選框的值並以字串的形式儲存及讀取時型別轉換
首先,首頁:
<form name="form1" id="form1" action="http://127.0.0.1/tp5/public/user/info/do_save" method="post">
興趣愛好<br>
<input name="shobby[]" type="checkbox" value="1"> 電腦<br>
<input name="shobby[]" type="checkbox" value="2">足球<br>
<input name="shobby[]" type="checkbox" value="3">籃球<br>
<input name="shobby[]" type="checkbox" value="4">電影<br>
<input name="shobby[]" type="checkbox" value="5">音樂<br>
<input name="shobby[]" type="checkbox" value="6">LOL<br>
<input name="shobby[]" type="checkbox" value="7">王者榮耀<br>
<input name="shobby[]" type="checkbox" value="8">汽車<br>
<input type="submit" value="提交">
</form>
控制器類 info 下save方法:
$s_hobby=Request::instance()->post('shobby/a'); // /a是用來獲取陣列的
if($s_hobby!=null){ // 如果不為空
for($i=0;$i<count($s_hobby);$i++){ // 陣列轉換成字串
$topicid.= $s_hobby[$i];
}
}
else{
$topicid='0';
}
$user = new User; //模型例項化
$data=[ 's_hobby' => $topicid ];
$user->save($data);
model下轉換
public function getSHobbyAttr($value) // 不用設定,從資料庫裡讀取就自動轉換,方法名對應資料庫列名,這裡是駝峰法命名
{
$w = '';
$j = 0;
//$a=count($value)
$hobby=array(); // 把hobby轉換成陣列
$hobby= str_split($value,1); //把字串分割到陣列中
$hob = array(1=>"電腦",2=>"足球",3=>"籃球",4=>"電影",5=>"音樂",6=>"lol",7=>"王者榮耀",8=>"汽車");
for($i=0;$i<count($value)+1;$i++){
$j=$hobby[$i];
$w.= $hob[$j];
}
return ($w);
}