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
.