PHP如何使用laravel 5将数据从数组保存到mysql
Im从POST获取“圆柱体”数据数组中的数组:PHP如何使用laravel 5将数据从数组保存到mysql,php,mysql,arrays,laravel,laravel-5,Php,Mysql,Arrays,Laravel,Laravel 5,Im从POST获取“圆柱体”数据数组中的数组: Array ( [serie] => Array ( [0] => 1234 [1] => 3545 ) [seriesap] => Array ( [0] => 1234234 [1] => 345345 ) [type]
Array
(
[serie] => Array
(
[0] => 1234
[1] => 3545
)
[seriesap] => Array
(
[0] => 1234234
[1] => 345345
)
[type] => Array
(
[0] => 4546
[1] => csdfwe
)
[admission] => Array
(
[0] => 04-05-2015
[1] => 04-05-2015
)
[invoice] => Array
(
[0] => fei76867
[1] => feiasodjf
)
)
现在,关键字中的字段:serie、type、admission等不会改变,但是这些关键字中的信息确实会改变,我的意思是其中可能有15项
最后,我需要保存到数据库:
$cylinder = new Cylinder();
$cylinder->serie = ??;
$cylinder->seriesap = ??;
$cylinder->type = ??;
$cylinder->admission = ??;
$cylinder->invoice = ??;
$cylinder->save
如何完成此任务并保存所有气缸
我已经尝试了所有我想不出有什么效果的方法
/编辑/
这就是我目前所做的:
$cyldata = $_POST['cylinder']; //this is the post from top.
$num_elements = 0;
while($num_elements < count($cyldata['serie'])){
$cylinder = new Cylinder();
$cylinder->serie = $cyldata['serie'][$num_elements];
$cylinder->type = $cyldata['type'][$num_elements];
$cylinder->admission = $cyldata['admission'][$num_elements];
$cylinder->seriesap = $cyldata['seriesap'][$num_elements];
$cylinder->save
$num_elements++;
}
$cyldata=$\u POST['cyline']//这是上面的帖子。
$num_元素=0;
而($num_elementsserie=$cyldata['serie'][$num_elements];
$cyland->type=$cyldata['type'][$num_elements];
$cyland->acmission=$cyldata['acmission'][$num_elements];
$cyland->seriesap=$cyldata['seriesap'][$num_elements];
$cylinder->save
$num_elements++;
}
但这感觉很难看,所有这些扑救感觉都不对。脏的解决方案,如果你问我。因为你有一个数组来将数据插入数据库,你可以尝试从模型中创建
方法:
Cylinder::create($array);
但是它实际上需要数组的键
作为数据库中的字段名
。也可以使用查询生成器执行此操作:
DB::table('table_name')->insert($array);
同样,需要将数组的键设置为数据库中的字段名。首先,需要将输入数据转换为另一种格式:
$cyldata = $_POST['cylinder']; //this is the post from top.
$num_elements = 0;
$sqlData = array();
while($num_elements < count($cyldata['serie'])){
$sqlData[] = array(
'serie' => $cyldata['serie'][$num_elements],
'type' => $cyldata['type'][$num_elements],
'admission' => $cyldata['admission'][$num_elements],
'seriesap' => $cyldata['seriesap'][$num_elements],
'invoice' => $cyldata['invoice'][$num_elements], // you miss this field, aren't you?
'created_at' => Carbon\Carbon::now(), // only if your table has this column
'updated_at' => Carbon\Carbon::now(), // only if your table has this column
);
$num_elements++;
}
注意:如果您的表中有这些字段,则在
处创建的和在
处更新的将显示在此处。使用雄辩模型时,这些字段会自动更新。但是,我们不使用Eloquent,因此我们必须手动将值分配给这些字段。我不知道是什么迫使您使用$\u POST
全局数组来接收来自用户的数据
也许,这就是你想要的
/**
* Store the form inputs in the table
*
* @param Request $request
*/
public function store( Request $request ) {
$data = Input::get();
for($i = 0; $i < count($data['serie']); $i++) {
$c = new Cylinder();
$c->serie = $data['serie'][$i];
$c->type = $data['type'][$i];
$c->admission = $data['admission'][$i];
$c->seriesap = $data['seriesap'][$i];
$c->save(); // fixed typo
}
}
/**
*将表单输入存储在表中
*
*@param Request$Request
*/
公共函数存储(请求$Request){
$data=Input::get();
对于($i=0;$iserie=$data['serie'][$i];
$c->type=$data['type'][$i];
$c->acmission=$data['acmission'][$i];
$c->seriesap=$data['seriesap'][$i];
$c->save();//修复了打字错误
}
}
我刚刚尝试了这个,只有一行,气缸表上没有信息,我认为当一个数组中有一个数组时,它不起作用。好吧,如果您使用$cyland=new cyland(),您自己的代码可能会起作用代码>超出while循环。
/**
* Store the form inputs in the table
*
* @param Request $request
*/
public function store( Request $request ) {
$data = Input::get();
for($i = 0; $i < count($data['serie']); $i++) {
$c = new Cylinder();
$c->serie = $data['serie'][$i];
$c->type = $data['type'][$i];
$c->admission = $data['admission'][$i];
$c->seriesap = $data['seriesap'][$i];
$c->save(); // fixed typo
}
}