Dale professor. não estou conseguindo achar o erro, vou postar os meus códigos
web.php
<?php
use Laravel\Lumen\Routing\Router;
use App\Http\Controllers\SeriesController;
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', function () use ($router) {
return $router->app->version();
});
$router->group(['prefix' => 'api'], function () use ($router){
$router->group(['prefix' => 'series'], function() use ($router){
$router->post('', 'SeriesController@store');
$router->get('', 'SeriesController@index');
$router->get('{id}', 'SeriesController@show');
$router->put('{id}', 'SeriesController@update');
$router->delete('{id}', 'SeriesController@destroy');
$router->get('{serieId}/episodios', 'EpisodiosController@buscaPorSerie');
});
$router->group(['prefix' => 'episodios'], function() use ($router){
$router->post('', 'EpisodiosController@store');
$router->get('', 'EpisodiosController@index');
$router->get('{id}', 'EpisodiosController@show');
$router->put('{id}', 'EpisodiosControllerr@update');
$router->delete('{id}', 'EpisodiosController@destroy');
});
});
baseController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
abstract class BaseController
{
protected $classe;
public function index(Request $request) {
return $this->classe::paginate($request->per_page);
}
public function store(Request $request){
return response()->json($this->classe::create($request->all()), 201);
}
public function show(int $id){
$recurso = $this->classe::find($id);
if(is_null($recurso)){
return response()->json('', 204);
}
return response()->json($recurso);
}
public function update(int $id, Request $request){
$recurso = $this->classe::find($id);
if(is_null($recurso)){
return response()->json('', 404);
}
$recurso->fill($request->all());
$recurso->save();
return $recurso;
}
public function destroy(int $id){
$qtdDeRecursosRemovidos = $this->classe::destroy($id);
if ($qtdDeRecursosRemovidos === 0) {
return response()->json('', 404);
}
return response()->json('', 204);
}
}
EpisodiosController.php
<?php
namespace App\Http\Controllers;
use App\Episodio;
class EpisodiosController extends BaseController
{
public function __construct() {
$this->classe = Episodio::class;
}
public function buscaPorSerie(int $serieId){
$episodios = Episodio::query()->where('serie_id', $serieId)->paginate();
return $episodios;
}
}
Serie.php
<?php
namespace app;
use Illuminate\Database\Eloquent\Model;
class Serie extends Model
{
public $timestamps = false;
protected $fillable = ['nome'];
protected $appends = ['links'];
public function epsodios(){
return $this->hasMany(Episodio::class);
}
public function getLinksAttribute($links): array
{
return [
'eu_mesmo' => '/api/series/' . $this.id,
'episodios' => '/api/series/' . $this->id . '/episodios'
];
}
}
Episodio.php
<?php
namespace app;
use Illuminate\Database\Eloquent\Model;
class Episodio extends Model
{
public $timestamps = false;
protected $fillable = ['temporada', 'numero','assistido', 'serie_id'];
protected $appends = ['links'];
public function series()
{
return $this->belongsTo(Serie::class);
}
public function getAssistidoAttribute($assistido): bool
{
return $assistido;
}
public function getLinksAttribute($links): array
{
return [
'eu_mesmo' => '/api/episodios/' . $this.id,
'serie' => '/api/series/' . $this->serie_id
];
}
}