我更新了我的实体文件以包含关系映射 .
坚持在更新之前工作现在它没有 .
也许这是我忘记做的事情 .
namespace classes\classBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* advisersplans
*
* @ORM\Table()
* @ORM\Entity
*/
class advisersPlans
{
/**
*
* @ORM\ManyToOne(targetEntity="plans", inversedBy="adviserPlans")
* @ORM\JoinColumn(name="planid", referencedColumnName="id")
*/
public $plan;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @var integer
*
* @ORM\Column(name="userid", type="integer")
*
*
*/
public $userid;
/**
* @var integer
*
* @ORM\Column(name="adviserid", type="integer")
*
*
*/
public $adviserid;
/**
* @var integer
*
* @ORM\Column(name="planid", type="integer")
*
*
*/
public $planid;
/**
* @var string
*
* @ORM\Column(name="participantLoginWebsiteAddress", type="string", length=255)
*/
public $participantLoginWebsiteAddress;
public function __construct()
{
$class_vars = get_class_vars(get_class($this));
foreach ($class_vars as $key => $value)
{
if ($key != "plan")
$this->$key = "";
}
}
}
Perist返回错误,说planid为null . 如果我删除以下它是有效的 .
/**
*
* @ORM\ManyToOne(targetEntity="plans", inversedBy="adviserPlans")
* @ORM\JoinColumn(name="planid", referencedColumnName="id")
*/
这是我的代码,同时坚持 .
$adviserPlan = new advisersPlans();
$adviserPlan->planid = $planid;
$adviserPlan->userid = $this->userid();
$adviserPlan->adviserid = $session->get("editadviserid");
$em->persist($adviserPlan);
我应该填充计划字段而不是planid字段,或者我的实体文件编码错误 .
1 回答
你不应该设置ID . 你应该设置实体:
在运行时,应该通过doctrine生成向集合添加实体的方法: