2016-06-14 33 views
6

Desidero memorizzare alcuni dati in formato JSON nel database da un determinato array. Ma come lo immagazzino usando il controller.Laravel: come memorizzare i dati in formato json nel database?

Supponiamo che io ho dati JSON come:

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

Per quanto ne so controller utilizzando il formato JSON è come questo, come io non sono pienamente consapevoli.

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'); 
     } 

Come si salva nel mySQL solo l'elenco delle circoscrizioni nella divisione modello utilizzando laravel controller?

+0

È possibile utilizzare la funzione di serializzazione php –

+0

mi può suggerire con codice di esempio per favore? – Hola

+0

Controlla questo link per ulteriori informazioni: http://stackoverflow.com/questions/6836592/serializing-php-object-to-json –

risposta

4

Non è necessario per convertire i dati array in una stringa JSON te stesso, utilizzare il laravel $ getta parametro del modello: https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting

Si dovrebbe fare qualcosa di simile nel modello Div:

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

Basta chiarire qualcosa! Come faccio a impostare $ opzioni ['chiave'] = 'valore'; ' – Hola

+0

Qui array significa preparare coppia di valori chiave in array come array ('chiave' => 'valore') –

0

È possibile convertire il modello in formato JSON come $model->toJson();

o

se si dispone di dati in un array è possibile utilizzare json_encode(['id' => 1, 'name' => 'User 1']);

laravel schema non supporta i tipi di campo JSON pure un'occhiata https://laravel.com/docs/5.0/schema#adding-columns

È possibile utilizzare text tipo di campo anche per archivio dati JSON.

Problemi correlati