Learn Laravel Help

Salvando JSON

Precisamos salvar um conjunto de dados em um banco para itens de múltipla escolha. Vamos criar um campo determinado de JSON via migrações. No front-end, devemos utilizar inputs com checkboxes. Após enviá-los para o controller, receberemos apenas os itens do request e o restante do processo é igual aos outros dados do nosso modelo.

  • Criar HTML que vai cnter a lista cm os items:

<div class="form-group"> <label for="title">Adicine itens de infraestrutura:</label> <div class="form-group"> <input type="checkbox" name="items[]" <!-- indica que vai ser um array chamado items --> value="cadeiras" /> Cadeiras </div> <div class="form-group"> <input type="checkbox" name="items[]" value="palco" /> Palco </div> <div class="form-group"> <input type="checkbox" name="items[]" value="Open foods" /> Cerveja Gratis </div> <div class="form-group"> <input type="checkbox" name="items[]" value="Brindse" /> Brindes </div> </div>
  • Definir que no Controller que recebe a requisição o atributo será usado pelo Model:

use App\Models\Event; $event = new Event; $event->items = $request->items;
  • Fazer o casting de dados usando o Eloquent:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Event extends Model { use HasFactory; //+> Com isso o Eloquent fara o casting de dados protected $casts = [ //item => "tipo" "items" => "array" ]; }
Last modified: 15 março 2025