如何使用带有ORM的Laravel foreach存储数组数据

时间:2016-10-17 16:00:59

标签: php arrays foreach laravel-5

create_team_social_icons_table.php

        $table->increments('id');
        $table->integer('order_id');
        $table->integer('team_id');
        $table->integer('social_class');
        $table->string('link');

您好, 我有两个不同的数组来自create form social_class []和link []。尝试一次使用表单从表单中记录值。

<select name="social_class[]">
<select name="social_class[]">
<select name="social_class[]">
<select name="link[]">
<select name="link[]">
<select name="link[]">

我收到了错误消息:

preg_replace():参数不匹配,pattern是一个字符串,而replacement是一个数组。

        $social_class = Input::get('social_class');
        $link = Input::get('link');
        foreach ($social_class as $socialClass) {
            $tsi = new TeamSocialIcon();
            $tsi->order_id = 0;
            $tsi->team_id = $insertedId;
            $tsi->social_class = $socialClass;
            $tsi->link = $link;
            $tsi->save();
        }

2 个答案:

答案 0 :(得分:0)

尝试使用explode方法将数组转换为字符串。您还应该将列数据类型更改为string或varchar,以便成功保存数据。在检索数据时,您可以使用implode方法将字符串转换回数组。

答案 1 :(得分:0)

我回答了自己的解决方案

$social_class = $request->social_class;
$link = $request->link;

        for($i = 0; $i < count($social_class); $i++) {
            $tsi = new TeamSocialIcon();
            $tsi->order_id = 0;
            $tsi->team_id = $insertedId;
            $tsi->social_class = $social_class[$i];
            $tsi->link = $link[$i];
            $tsi->save();
        }