我在我的应用中实施了存储库。在我的PresupuestoController中(Presupuesto =西班牙语估计)PresupuestoRepo被注入构造函数中:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Paciente;
use App\Repositories\PresupuestoRepository;
class PresupuestosController extends Controller
{
protected $presupuestoRepo;
public function __construct(PresupuestoRepository $presupuestoRepo )
{
$this->presupuestoRepo = $presupuestoRepo;
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Paciente $paciente)
{
$presupuesto = $this->presupuestoRepo->createNew($paciente);
dd($presupuesto);
return view('presupuesto.edit', compact('paciente'));
}
}
到目前为止,上帝。有用。但现在我需要在PresupestoRepo本身注入依赖,PacienteRepository(Paciente =西班牙语患者)
<?php
namespace App\Repositories;
use Carbon\Carbon;
use App\Models\Presupuesto;
use App\Repositories\PacienteRepository;
class PresupuestoRepository extends BaseRepository {
protected $pacienteRepo;
public function __constructor(PacienteRepository $pacienteRepo)
{
// THIS CONSTRUCTOR IS **NEVER** CALLED !!!
$this->pacienteRepo = $pacienteRepo;
dd($pacienteRepo); // here is the problem: pacienteRepo is NULL !!!
}
public function getRepo()
{
return $this->presupuestoRepo;
}
}
但是PaceinteRepository没有自动调用,而是变为null。
为了完整起见,PacienteRepository:
<?php
namespace App\Repositories;
use App\Models\Paciente;
use App\Models\Odontograma;
class PacienteRepository extends BaseRepository {
public function __constructor(){}
/**
* @return string
*/
public function getClassName()
{
return 'App\Models\Paciente';
}
}
如何在PresupuestoRepository的构造函数中注入PacienteRepo?