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