Php 条令:类的对象无法转换为字符串
我的学说版本:v2.6.1 我正在尝试与许多人建立联系,我的意思是,Many工作只有一种身份。 在表作业中,我有一个名为“status_id”的列,它通过外键连接到表status。在类php文件Jobs.php中,我有:Php 条令:类的对象无法转换为字符串,php,class,pdo,doctrine-orm,Php,Class,Pdo,Doctrine Orm,我的学说版本:v2.6.1 我正在尝试与许多人建立联系,我的意思是,Many工作只有一种身份。 在表作业中,我有一个名为“status_id”的列,它通过外键连接到表status。在类php文件Jobs.php中,我有: namespace App\Models\Entity; use Doctrine\ORM\Mapping as ORM; use App\Models\Entity\Edition; use App\Models\Entity\Status; /** * Class J
namespace App\Models\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Models\Entity\Edition;
use App\Models\Entity\Status;
/**
* Class Jobs
* @package App\Models\Entity
* @ORM\Entity
* @ORM\Table(name="jobs")
*/
class Jobs{
/**
* @var int
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
**/
private $id;
(......)
/**
* @var int
* Many Jobs has One Status.
* @ORM\Column(name="status_id")
* @ORM\ManyToOne(targetEntity="Status", inversedBy="jobs")
* @ORM\JoinColumn(name="status_id", referencedColumnName="id")
**/
private $status;
(......)
/**
* @return Jobs
*/
public function getStatus() {
return $this->status;
}
/**
* @param Jobs $status
*/
public function setStatus(Status $status = null){
$this->status = $status;
}
}
显然,这里我没有所有类的定义,只是插入了我认为相关的内容。
在最后的setStatus()中,我正在连接到另一个文件中名为Status的另一个类
在index.php中,我有:
$job = new App\Models\Entity\Jobs();
$job->setName($insertName);
$job->setNotes("");
$job->setSize("30x20x11");
$job->setCustomerRef("");
$job->setEditionId(17);
$status = new App\Models\Entity\Status();
$status->setName("Aprovado");
$job->setStatus($status);
$entityManager->persist($status);
$entityManager->persist($job);
$entityManager->flush();
这给了我一个错误,我知道它在命令flush()中,我做了一些die()来检查它是否给出了错误。
错误如下:
可恢复的致命错误:类App\Models\Entity\Status的对象
无法在中转换为字符串
/home/../vendor/doctor/dbal/lib/doctor/dbal/Driver/PDOStatement.php
在线101
问题在于如何映射
$status
属性:它同时使用@ORM\Column
和关联映射,这是一个冲突,它使Dority将您的状态保存为字符串。删除@ORM\Column
注释,您应该不会有问题。问题在于如何映射$status
属性:它同时使用@ORM\Column
和关联映射,这是一个冲突,会使您将状态保存为字符串。删除@ORM\Column
注释,您应该会没事。开始时,我有这样的代码,但这给了我一些错误,解决方法是添加*ORM*。另外,我又做了同样的事情,错误是:类App\Models\Entity\Status中的注释“@Entity”从未导入。您是否忘记为该注释添加“use”语句?要修复此错误,请添加回@ORM\。检查此链接:我不是在说“@ORM”前缀,我是在向您指出映射中的一个错误,该错误导致问题中所述的错误。我找不到如何修复该错误,因为我正在使用文档中所述的代码。有什么帮助吗?是的,不要在一个属性上组合@ORM\Column
和@ORM\ManyToOne
,映射如文档所示:开始时我有这样的代码,但这给了我一些错误,解决方案是添加*ORM*。另外,我又做了同样的事情,错误是:类App\Models\Entity\Status中的注释“@Entity”从未导入。您是否忘记为该注释添加“use”语句?要修复此错误,请添加回@ORM\。检查此链接:我不是在说“@ORM”前缀,我是在向您指出映射中的一个错误,该错误导致问题中所述的错误。我找不到如何修复该错误,因为我正在使用文档中所述的代码。有帮助吗?是的,不要在一个属性上组合@ORM\Column
和@ORM\ManyToOne
,映射如文档中所示: