Como faço para resolver esse problema ao tentar criar a classe BaseController?
Como faço para resolver esse problema ao tentar criar a classe BaseController?
Olá Angelo,
Como você está criando essa classe? Se possível compartilha essa parte do código.
Fico no aguardo!
Boa tarde Lucas,
A classe abaixo é a minha classe Base.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
abstract class BaseController { protected $classe;
public function index()
{
return $this->classe::all();
}
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, 201);
}
public function update(int $id, Request $request)
{
$recurso = $this->classe::find($id);
if(is_null($recurso)){
return response()->json([
'erro' => 'Recurso não encontrado'
], 404);
}
$recurso->fill($request->all());
$recurso->save();
return response()->json($recurso, 201);
}
public function destroy(int $id)
{
$quantRecursosRemovidos = $this->classe::destroy($id);
if($quantRecursosRemovidos === 0){
return response()->json([
'erro' => 'Recurso não encontrado'
], 404);
}
return response()->json('', 204);
}
}
Essa aqui é a classe na qual eu herdo e tento que tenha o mesmo comportamento de antes...
<?php
namespace App\Http\Controllers\Academico;
use App\Http\Controllers\BaseController; use App\PeriodoLetivo;
class PeriodoLetivoController extends BaseController { public function __constructor() { $this->classe = PeriodoLetivo::class; } }
Opa Angelo, o erro é apenas um detalhe no nome do construtor, na sua classe está __constructor
mas o correto é __construct
Por estar com um nome diferente do esperado pelo php o construtor não vai ser executado e assim o $classe
vai ser uma variável vazia.
É só corrigir isso que deve funcionar, qualquer dúvida é só falar!
Muito obrigado Lucas!!!!