前端传来的数据并不一定是10个,我希望解析出几个字段就向数据库添加几个字段,该怎么办?

前端传来的字符串以#号分割,传进来后explode把字符串分割成几个字段。再把这几个字符串写入数据库。

namespace app\api\controller\v2;

use app\api\model\LeaveMessage as LeaveMessageModel;

class LeaveMessage
{
   public function RecordMessage($user_id='',$item_id='',$item_category='',$message=''){
       //这个验证还不知道咋写
       (new MessageValidate())->goCheck();
       $message = explode('#',$message);
       //接下来应该把结果写入才对,写入哪些表?
       $dataArray = [
           'user_id'=> $user_id,
           'item_id'=> $item_id,
           'item_category'=>$item_category,
           'c1'=>$message[0],
           'c2'=>$message[1],
           'c3'=>$message[2],
           'c4'=>$message[3],
           'c5'=>$message[4],
           'c6'=>$message[5],
           'c7'=>$message[6],
           'c8'=>$message[7],
           'c9'=>$message[8],
           'c10'=>$message[9]
       ];
       LeaveMessageModel()->save($dataArray);
   }
}

我设计的数据表如下,这样设计数据表可以吗?有没有其它好方法:


无无法师
浏览 1836回答 2
2回答

天使之翼死神之镰

控制好前端传进来的数据参数,每个字段必须填写,没有用空格代替,然后进行拆分,分别赋值,表格为什么要用这么长一个字符串呢,为什么在不在前台设置成多个表单框进行传值呢

Caballarii

还不如就把用#分割的字段直接存到数据库里的一个字段里。你在数据库里分开来有什么用?
打开App,查看更多内容
随时随地看视频慕课网APP