1. 程式人生 > >tp5獲取複選框的值並以字串的形式儲存及讀取時型別轉換

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);
    }