PHP如何使用laravel 5将数据从数组保存到mysql

我在POST中的’Cylinders’数据数组中得到一个数组:
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
        )
  )

现在,键内的字段:系列,类型,入场等不会改变,但这些键内的信息确实发生变化,我的意思是那里甚至可能有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 = $_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++;
}

其次,使用Fluent查询构建器执行批量插入:

DB::table('table_name')->insert($sqlData);

注意:如果您的表具有这些字段,则created_at和updated_at将显示在此处.使用Eloquent模型时,这些字段会自动更新.但是,我们不使用Eloquent,因此我们必须手动将值分配给这些字段.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载
为什么laravel比yii火
一些常见的Laravel定时任务不运行的问题
laravel用路由有什么好处
composer无法安装laravel怎么办
laravel现在还用吗
laravel怎么替换主键id
laravel的appurl有什么用
如何修改Laravel的报错输出形式
laravel怎么避免foreach查表
laravel怎样操作数据库
laravel怎么截取字符串
laravel 是国内的吗
laravel怎么设置请求头
浅析Laravel社区Redis组件报错的问题和解决方法