Home > Software design >  Error: Object of class Src\GestionConciertos\Concierto\Application\AlmacenarConcierto could not
Error: Object of class Src\GestionConciertos\Concierto\Application\AlmacenarConcierto could not

Time:09-12

I've created this two classes

namespace Src\GestionConciertos\Concierto\Application;

final class AlmacenarConcierto{

    public function almacenar(){
        return [
            'test' => 'test text'
        ];
    }
}

and

namespace Src\GestionConciertos\Concierto\Infraestructure\Controllers;

use Illuminate\Http\Request;
use Src\GestionConciertos\Concierto\Application\AlmacenarConcierto;

final class AlmacenarConciertoController{

    private AlmacenarConcierto $almacenarConcierto;

    public function __construct(AlmacenarConcierto $almacenarConcierto)
    {
        $this->$almacenarConcierto = $almacenarConcierto;    
    }
    
    public function almacenar(Request $request){
        
       $this->almacenarConcierto->almacenar();
    }
}

but when a call the url that executes AlmacenarConciertoController::almacenar I get this error

Error: Object of class Src\GestionConciertos\Concierto\Application\AlmacenarConcierto could not be converted to string in file C:\Users\user\Desktop\project\src\GestionConciertos\Concierto\Infraestructure\Controllers\AlmacenarConciertoController.php on line 14

the problem happens on the constructor asignation, but I dont know what is happening , I'm not trying to convert the object to a string.

 $this->$almacenarConcierto = $almacenarConcierto;

CodePudding user response:

Your error is that you are doing $this->$almacenarConcierto but it should be $this->almacenarConcierto:

public function __construct(AlmacenarConcierto $almacenarConcierto)
{
    $this->almacenarConcierto = $almacenarConcierto;    
}

Because you had $this->$almacenarConcierto, you are literally trying to convert $almacenarConcierto to a string so it can be used as $this->whatever $almacenarConcierto returns as string.

  • Related