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

我的学说版本: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 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
,映射如文档中所示: