Как хранить данные массива с помощью Laravel foreach с ORM

#php #arrays #foreach #laravel-5

#php #массивы #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');
  

Здравствуйте,
У меня есть два разных массива из формы создания 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(): несоответствие параметров, шаблон — это строка, а замена — массив.

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

Комментарии:

1. Когда вы используете $sc ? мне кажется, вы пытаетесь сохранить $social_class массив, а не элемент массива. Попробуйте, изменив: $tsi->social_class = $social_class; на $tsi->social_class = $sc;

2. Здравствуйте, я использую $tsi->social_class = $socialClass; и обновляю некоторую переменную, но tsi->link или $link все еще не улавливаю значение. и ошибка preg_replace.

Ответ №1:

Попробуйте преобразовать массив в строку, используя метод explode. Вы также должны изменить тип данных столбца на string или 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();
        }