繁体   English   中英

symfony 学说协会

[英]symfony doctrine associations

嗨,所以我设法让这个工作用于用户和工作之间的关系

我遵循完全相同的程序,检查了文档,我不知所措

我试图建立的关系是工作

1 个分配有许多工作项的作业

../实体/Job.php

 /**
 * @ORM\OneToMany(targetEntity="Work",mappedBy="workJob")
 *
 */
protected $jobToWork;
/**
 * Add jobToWork
 *
 * @param \Laelaps\InvoiceBundle\Entity\Work $jobToWork
 * @return Job
 */
public function addJobToWork(\Laelaps\InvoiceBundle\Entity\Work $jobToWork)
{

    $this->jobToWork[] = $jobToWork;

    return $this;
}
/**
 * Remove jobToWork
 *
 * @param \Laelaps\InvoiceBundle\Entity\Work $jobToWork
 */
public function removeJobToWork(\Laelaps\InvoiceBundle\Entity\Work $jobToWork)
{
    $this->jobToWork->removeElement($jobToWork);
}

/**
 * Get jobToWork
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getJobToWork()
{
    return $this->jobToWork;
}

../实体/Work.php

/**
 * @ORM\ManyToOne(targetEntity="Job",inversedBy="jobToWork")
 * @ORM\JoinColumn(name="work_job", referencedColumnName="id")
 */
protected $workJob;

/**
 * Set workJob
 *
 * @param integer $workJob
 * @return Work
 */
public function setWorkJob($workJob)
{
    $workJob->addJobToWork($this);
    $this->workJob = $workJob;

    return $this;
}

/**
 * Get workJob
 *
 * @return integer
 */
public function getWorkJob()
{
    return $this->workJob;
}

我做了一个应用程序/控制台学说:generate:crud

我知道我的用户与工作关系的设置方式完全相同。

当我尝试去创建一个新的“工作”项目时得到的错误是 Object of class ..\\Entity\\Job could not be convert to string

任何帮助,一如既往地非常感谢

更新

如答案中所定义

public function __toString()
{
    return (string) $this->getJobName();
}

当我使用 FOSUserBundle 并且我的用户类扩展了 FOSUser 类时,这意味着 __toString() 函数是在 FOSUser 中定义的,因此在为用户创建关联时没有问题。

您可能尝试将您的 Job 显示为字符串(例如在选择框或列表中)。 只需将 __toString() 方法添加到您的 Job 实体,如下所示:

public function __toString()
{
    return $this->name; // For example
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM