erro: SQLSTATE[HY000]: General error: 1 no such table: main.temporada (SQL: insert into "episodios" ("numero", "temporada_id") values (1, 8)) baixei o mesmo codigo da aula 03 no começo, e coloquei os arquivos editados, ta funcionando, só essa parte de adicionar que nao. CreateTemporadasTable <?php
use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration;
class CreateTemporadasTable extends Migration { /**
* Run the migrations.
*
* @return void
*/
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');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('temporadas');
}
} CreateEpisodiosTable
<?php
use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration;
class CreateEpisodiosTable extends Migration { /**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('episodios', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('numero');
$table->integer('temporada_id');
$table->foreign('temporada_id')
->references('id')
->on('temporadas');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('episodios');
}
} Episodio <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Episodio extends Model { protected $fillable = ['numero']; public $timestamps = false;
public function temporada()
{
return $this->belongsTo(Temporada::class);
}
} Temporada <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Temporada extends Model { protected $fillable = ['numero']; public $timestamps = false;
public function serie()
{
return $this->belongsTo(Serie::class);
}
public function episodios()
{
return $this->hasMany(Episodio::class);
}
} TemporadasController <?php
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')
);
}
} SeriesController <?php
namespace App\Http\Controllers;
use App\Http\Requests\SeriesFormRequest; use App\Serie; use Illuminate\Http\Request;
class SeriesController extends Controller { public function index(Request $request) { $series = Serie::query() ->orderBy('nome') ->get(); $mensagem = $request->session()->get('mensagem');
return view('series.index', compact('series', 'mensagem'));
}
public function create()
{
return view('series.create');
}
public function store(SeriesFormRequest $request)
{
$serie = Serie::create(['nome' => $request->nome]);
$qtdTemporadas = $request->qtd_temporadas;
for ($i = 1; $i <= $qtdTemporadas; $i++) {
$temporada = $serie->temporadas()->create(['numero' => $i]);
for ($j = 1; $j <= $request->ep_por_temporada; $j++) {
$temporada->episodios()->create(['numero' => $j]);
}
}
$request->session()
->flash(
'mensagem',
"Série {$serie->id} e suas temporadas e episódios criados com sucesso {$serie->nome}"
);
return redirect()->route('listar_series');
}
public function destroy(Request $request)
{
Serie::destroy($request->id);
$request->session()
->flash(
'mensagem',
"Série removida com sucesso"
);
return redirect()->route('listar_series');
}
}