Как вставить несколько значений в несколько столбцов с Laravel? - PullRequest
2 голосов
/ 19 апреля 2019

Я в некотором роде новичок в Laravel, у меня возникли некоторые проблемы с вставкой множественного выбора в несколько столбцов в базе данных.

Здесь мое мнение: я использую средство выбора для множественного выбора

  <select multiple="multiple"  name=language[] id="language[]" class="selectpicker"  data-selected-text-format="count">
    <option name="En">English</option>
    <option  name="It">Italian</option>
    <option  name="Ar">Arabic</option>                            
    <option  name="Jp">Japanese</option>
    </select>

Таблица языков:

+----+---------+---------+--------+--------+
| id | English | Italian | Arabic |Japanese|
+----+---------+---------+--------+--------+
|  1 |         |         |        |        |
|  2 |         |         |        |        |
|  3 |         |         |        |        |
+----+---------+---------+--------+--------+

Как вставить данные в каждый столбец контроллера?
Вот что я пытаюсь сделать!

+----+---------+---------+--------+--------+
| id | English | Italian | Arabic |Japanese|
+----+---------+---------+--------+--------+
|  1 |   En    |         |   Ar   |   Jp   |
|  2 |         |    It   |        |        |
|  3 |   En    |         |        |   Jp   |
+----+---------+---------+--------+--------+

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Сначала убедитесь, что столбец таблицы id установлен на auto increment. и другие столбцы как nullable.

$languages = request('languages');

DB::table('table_name')->insert([
    'English' => in_array('En', $languages) ? 'En' : null,
    'Italian' => in_array('It', $languages) ? 'It' : null,
    'Arabic' => in_array('Ar', $languages) ? 'Ar' : null,
    'Japanese' => in_array('Jp', $languages) ? 'Jp' : null,
]);
0 голосов
/ 19 апреля 2019

Вы получите массив language в вашем контроллере, чтобы вы могли проверить, существует ли язык, добавьте его в БД:

$en = $it = $ar = $jp = null;

if(in_array('En', $language))
    $en = 'En';
if(in_array('It', $language))
    $it = 'It';
if(in_array('Ar', $language))
    $ar = 'Ar';
if(in_array('Jp', $language))
    $jp = 'Jp';

ModelName::insert(['English' => $en, 'Italian' => $it, 'Arabic' => $ar, 'Japanes' => $jp]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...