1
resposta

Erro referente ao banco

Olá pessoal!!!

Estou recebendo esse erro:

SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: temporadas.serie_id (SQL: insert into "temporadas" default values)

E em pesquisas notei que esse erro esta relacionado a algum erro no banco e achei também um post de outro aluno do alura com esse mesmo erro, segue o link do post dele:

https://cursos.alura.com.br/forum/topico-estou-com-este-erro-146036

E já deletei o arquivo database.sqlite e rodei novamente o comando php artisan migrate para ver se conseguia arrumar, mas continua dando esse erro.

Alguma ideia do que pode ser pessoal?

Arquivo da migrate adiciona_campo_assistido:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AdicionaCampoAssistido extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('episodios', function (Blueprint $table) {
            $table->boolean('assistido')->default(false);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('episodios', function (Blueprint $table) {
            $table->dropColumn('assistido');
        });
    }
}

Arquivo EpisodiosController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Temporada;
use App\Models\Episodio;

class EpisodiosController extends Controller
{
    public function index(Temporada $temporada)
    {
        return view('episodios.index', [
            'episodios'   => $temporada->episodios,
            'temporadaId' => $temporada->id
        ]);
    }

    public function assistir(Temporada $temporada, Request $request)
    {
        $episodiosAssistidos = $request->episodios;
        $temporada->episodios->each(function (Episodio $episodio) use ($episodiosAssistidos) {
            $episodio->assistido = in_array($episodio->id, $episodiosAssistidos);
        });
        $temporada->push();
    }
}

Arquivo episodios.index.blade:

@extends('layout')

@section('cabecalho')
Episódios
@endsection

@section('conteudo')

<form action="/temporadas/{{ $temporadaId }}/episodios/assistir" method="post">
    @csrf
    <ul class="list-group">
        @foreach($episodios as $episodio)
            <li class="list-group-item d-flex justify-content-between align-items-center">
                Episódio {{ $episodio->numero }}
                <input type="checkbox" name="episodios[]" value="{{ $episodio->id }}">
            </li>
        @endforeach
    </ul>

    <button class="btn btn-primary mt-2 mb-2">Salvar</button>

</form>

@endsection
1 resposta

Olá, Bruno. Você já resolveu esse problema?

Caso contrário, consegue depurar pra gente? Qual valor está chegando em $request->episodios? E no each, o valor de assistido está sendo preenchido corretamente?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software