View para listar as temporadas não aparece as temporadas, fica todo em branco.
View para listar as temporadas não aparece as temporadas, fica todo em branco.
Olá, Aluízio.
Preciso de mais detalhes pra poder te ajudar. rs
TemporadasController
namespace App\Http\Controllers;
use App\Serie;
use Illuminate\Http\Request;
class TemporadasController extends Controller
{
public function index(int $serieId)
{
$serie = Serie::find($serieId);
$temporadas = $serie->temporadas;
return view('temporadas.index', compact('serie' ,'temporadas'));
}
}
Index para listar temporadas
@extends('layout')
@section('cabecalho')
Temporadas de {{ $serie->nome }}
@endsection
@section('conteudo')
<ul class="list-group">
@foreach ($temporadas as $temporada)
<li class="list-group-item">{{ $temporada->numero }}</li>
@endforeach
</ul>
@endsection
Mas quando eu chego clico no link para me redirecionar para essa página index, ela traz o nome certinho lá em cima Temporadas de "Daredevil" , mas não lista as temporadas abaixo.
Aluízio, seu código parece certinho.
Logo depois da definição da variável $temporadas no Controller, coloca essa linha:
dd($temporadas);
Vê se a coleção tem algum dado.
Se não tiver, verifica o mapeamento do relacionamento entre suas séries e temporadas na model Serie
.
Coloquei como você pediu essa linha dd($temporada). E ele me retornou isso:
Illuminate\Database\Eloquent\Collection {#270 ▼
#items: []
}
2 coisas:
Serie
tá certoSinceramente não sei como verifica as tabelas e as colunas do banco de dados.
E eu já mapeei classe Série
e está tudo tranquilo, tenho quase certeza que não estão sendo inseridos no banco de dados.
Fiz algumas alterações aqui no código no SeriesController, e quando tento adicionar ele me dá esse erro:
SQLSTATE[HY000]: General error: 1 table temporadas has no column named numero (SQL: insert into "temporadas" ("numero", "serie_id") values (1, 30))
Ele até adiciona, vai pra lista de séries adicionada, mas fica em branco quando peço para listar as temporadas.
Opa. Parece que você não rodou as migrations corretamente para criar a coluna numero
na tabela de temporadas.
Como está sua migration de criar a tabela temporadas
?
Segue abaixo a Migration de criar a tabela temporadas
:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTemporadasTable extends Migration
{
public function up()
{
Schema::create('temporadas', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('numero');
$table->integer('serie_id');
$table->foreign('serie_id')
->references('id')
->on('series');
});
}
public function down()
{
Schema::dropIfExists('temporadas');
}
}
Aluízio, mais uma vez, parece tudo certo. Tenta rodar as migrations de novo, do zero, com:
php artisan migrate:fresh
Isso vai apagar todas as suas tabelas e recriar. Vê se todos os campos estão sendo criados corretamente...
Vinicius, boa tarde.
Fiz o que você falou, testei novamente e já está aparecendo. Provavelmente ele não tinha criado as tabelas.
Obrigado pela atenção.