Вставить несколько значений в виде массива в один столбец - PullRequest
0 голосов
/ 14 января 2020

У меня есть флажок с несколькими значениями для выбора. Пока у меня это работает, и данные вставляются в базу данных, но в этом формате,

The image shows the values being 1,2,3

Моя проблема в том, что я хочу, чтобы данные быть в этом формате ["value1", "value2", "value3"] . Я использую Laravel, и это код в моем контроллере:

public function store(NewsRequest $request) //ive removed most of the unnecessary code like the image upload and all to make this clean.
{
    $news = new News($request->except('files', 'image'));
    $serialize = implode(",", $news->majors); //this is my focus to change the format to ["value1","value2","value3"]

    //ready data for insertion
    $data = array(
        "name" => $news->name,
        "article_type_id" => $request->category,
        "majors" => $serialize,
        "content" => $news->content
    );

    DB::table('articles')->insert($data); //insert into database
}

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

enter image description here

Я попытался осмотреть inte rnet, но не смог найти ничего, что могло бы помочь, кроме JSON .stringify. Я надеюсь получить формат в самом контроллере. Я надеюсь получить некоторое представление об этом. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 января 2020

добавление кавычек в начале, в пределах implode () и в конце сделает волхвов c.

$serialize = '["'.implode('","', $news->majors).'"]';
0 голосов
/ 14 января 2020

Вы можете рассмотреть возможность использования атрибута json для столбца в файле миграции, а затем в связанной модели вы можете преобразовать этот столбец в массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...