2016-06-14 3 views
6

Я хочу сохранить некоторые данные формата json в базе данных из заданного массива. Но как я его храню с помощью контроллера.Laravel: Как хранить данные формата json в базе данных?

Пусть у меня есть JSon данные, такие как:

{"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]} 

Насколько я знаю, в контроллере, используя формат JSON, как это, как я не в полной мере осознает это.

public function saveUser(Request $request) 
     { 
      $div=new Div(); 
         $user->json = json_encode(array({"Date 1": { 
       {"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]} 
      $div->save(); 

      return redirect('getList'); 
     } 

Как я сохранить его в MySql только перечень подразделений на Участке модели с использованием Laravel контроллера?

+0

Вы можете использовать функцию сериализации php –

+0

, можете ли вы предложить мне пример кода? – Hola

+0

Проверьте эту ссылку для получения дополнительной информации: - http://stackoverflow.com/questions/6836592/serializing-php-object-to-json –

ответ

4

Вам не нужно, чтобы преобразовать данные массива в строку JSON себя, используйте Laravel $ проливает параметр на модели: https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting

Вы должны сделать что-то подобное в вашей Div модели:

protected $casts = [ 
    'divisions' => 'array', 
]; 
+0

Просто проясните что-нибудь! Как установить '$ options ['key'] = 'значение';' – Hola

+0

Здесь массив означает приготовление пары значений ключа в массиве типа array ('key' => 'value'). –

0

Вы можете преобразовать модель в формат JSON как $model->toJson();

или

, если у вас есть данные в массиве можно использовать json_encode(['id' => 1, 'name' => 'User 1']);

Laravel Схема не поддерживает типы JSON полей, а также смотрите https://laravel.com/docs/5.0/schema#adding-columns

Вы можете использовать text тип поля, а также для хранения данных JSON.

Смежные вопросы