Laravel报错:AlmacenarConcierto对象无法转为字符串问题求助
问题解决:对象无法转换为字符串错误
错误根源
你构造函数里的赋值语句误用了PHP的变量变量语法,在属性名前多写了一个$:
$this->$almacenarConcierto = $almacenarConcierto;
PHP解析$this->$almacenarConcierto时,会尝试把$almacenarConcierto这个对象转换成字符串,以此作为属性名。但你的AlmacenarConcierto类没有定义__toString()方法,所以触发了"对象无法转换为字符串"的错误。
你实际要赋值的是类中预先定义的私有属性$almacenarConcierto,不需要在属性名前额外加$。
修正后的代码
把构造函数的赋值语句修改为:
public function __construct(AlmacenarConcierto $almacenarConcierto) { $this->almacenarConcierto = $almacenarConcierto; }
完整的修正后控制器类:
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){ return $this->almacenarConcierto->almacenar(); } }
(额外提示:建议在almacenar方法中返回执行结果,这样接口能正常输出响应内容)
内容的提问来源于stack exchange,提问作者a_dv85
相关产品推荐
相关产品推荐

