【问题标题】:How to Store Array Data Using Laravel foreach with ORM如何使用 Laravel foreach 和 ORM 存储数组数据
【发布时间】:2017-02-26 16:52:27
【问题描述】:

create_team_social_icons_table.php

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

你好, 我有两个不同的数组,来自创建表单 social_class [] 和链接 []。尝试一次使用表单记录表单中的值。

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

【问题讨论】:

  • 你什么时候使用$sc?在我看来,您正在尝试保存 $social_class 数组,而不是数组元素。尝试,更改:$tsi-&gt;social_class = $social_class;$tsi-&gt;social_class = $sc;
  • 您好,我使用$tsi-&gt;social_class = $socialClass; 并更新了一些变量,但tsi-&gt;link$link 仍然没有捕捉到价值。和 preg_replace 错误。

标签: php arrays foreach laravel-5


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我自己回答了我的解决方案

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2014-05-08
      • 1970-01-01
      • 2018-10-26
      • 2021-03-12
      • 2014-09-03
      相关资源
      最近更新 更多