IoC没有自动解决

时间:2018-01-30 11:55:37

标签: laravel

我在我的应用中实施了存储库。在我的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?

0 个答案:

没有答案