Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Não está listando as temporadas e episódios da série

Quando vai para o seasons/index.blade.php não lista temporadas e episódios da série

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

meu github https://github.com/hnhostins/controle-series

notei que no seu exemplo na url tem mais informações Insira aqui a descrição dessa imagem para ajudar na acessibilidade

11 respostas

Como está seu banco de dados? Há algum erro no console?

não está add as temporadas e episódios, só tem 1 insert

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como está o código de inserção?

copiei o seu seriesController para o meu projeto e deu o erro abaixo.


namespace App\Http\Controllers;

use App\Http\Requests\SeriesFormRequest;
use App\Models\Episode;
use App\Models\Season;
use App\Models\Series;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class SeriesController extends Controller
{
    public function index(Request $request)
    {
        $series = Series::all();
        $mensagemSucesso = session('mensagem.sucesso');

        return view('series.index')->with('series', $series)
            ->with('mensagemSucesso', $mensagemSucesso);
    }

    public function create()
    {
        return view('series.create');
    }

    public function store(SeriesFormRequest $request)
    {
        $serie = Series::create($request->all());
        $seasons = [];
        for ($i = 1; $i <= $request->seasonsQty; $i++) {
            $seasons[] = [
                'series_id' => $serie->id,
                'number' => $i,
            ];
        }
        Season::insert($seasons);

        $episodes = [];
        foreach ($serie->seasons as $season) {
            for ($j = 1; $j <= $request->episodesPerSeason; $j++) {
                $episodes[] = [
                    'season_id' => $season->id,
                    'number' => $j
                ];
            }
        }
        Episode::insert($episodes);

        return to_route('series.index')
            ->with('mensagem.sucesso', "Série '{$serie->nome}' adicionada com sucesso");
    }

    public function destroy(Series $series)
    {
        $series->delete();

        return to_route('series.index')
            ->with('mensagem.sucesso', "Série '{$series->nome}' removida com sucesso");
    }

    public function edit(Series $series)
    {
        return view('series.edit')->with('serie', $series);
    }

    public function update(Series $series, SeriesFormRequest $request)
    {
        $series->fill($request->all());
        $series->save();

        return to_route('series.index')
            ->with('mensagem.sucesso', "Série '{$series->nome}' atualizada com sucesso");
    }
}

deu esse erro Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Suas migrations e/ou relacionamentos nas models parecem estar incorretos.

verifiquei as migrations e relacionamentos nas models e inclusive copiei, estão corretos. mesmo erro, sei q é só no episodes, pois quando o comento pra inserir dá certo.

e utilizei os comandos abaixo: php artisan cache:clear php artisan config:clear php artisan view:clear

meu github https://github.com/hnhostins/controle-series

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

boa tarde Vinícius, refiz tudo novamente, e realmente estou sem entender pq o erro persiste, trabalho na TI dos correios que fez o pacote com vcs, estou gostando muito, mas esse erro me tira até o sono... rs

olha só vou mandar figuras pra entender, coloquei um dd para ver se os valores estavam indo corretamente e vi q sim... Insira aqui a descrição dessa imagem para ajudar na acessibilidade

como o erro fala q falta a coluna season_id na tabela episodes, verifiquei tudo o q vc fez na recriação das migrations, e está, ao menos pra mim, tudo correto. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAqui a minha migration episodes

<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('episodes', function (Blueprint $table) {
            $table->id();
            $table->unsignedTinyInteger('number');
            $table->foreignId('season_id')->constrained();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('episodes');
    }
};

E uma dúvida que estou tendo, onde é feito o relacionamento do model x migration?

Herlon, no link que eu te enviei mostra que você definiu a tabela para ter uma coluna chamada series_id ao invés de season_id. Como você já rodou a migration, só alterar o código não resolve. Você precisa fazer uma das duas coisas a seguir:

  1. Criar uma nova migration que remova a coluna errada e crie a certa
  2. Fazer o down dessa migration, corrigi-la e fazer o up de novo

Entendi e finalmente consegui para minha alegria e seu alívio kkkkkkkkkkkk

Mas poderia me tirar a dúvida que estou tendo, onde é feito o relacionamento do model x migration? Onde é feito esse relacionamento do um model com a respectiva migration, pois em projetos q trabalho eu faço uma chamada --> $conexao = Oracle::conexao('usuario'); por exemplo e lá já tem tudo no framework para fazer a conexão e chamar a respectiva tabela, isso tudo já vem pronto pra mim, mas aqui no lavaravel onde é feita essa conexão?

solução!

Não existe relacionamento entre model e migration. A migration cria uma tabela. Você pode criar tabelas em suas migrations que não possuem models. Mas a model representa alguma tabela, sempre. Aí qual tabela a model vai representar pode ser só pelo nome da classe ou pelo atributo $table como vimos no curso. :-)

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