我正在使用doctrine 2.0并基于架构创建实体。
我有两个实体消息和用户
消息中的和用户ID 与用户中的 id 相关联。
当我创建实体时,我在消息实体中得到了类似的东西
/**
* Set from
*
* @param UserDetails $from
*/
public function setFrom(\UserDetails $from)
{
$this->from = $from;
}
我怎样才能设置from from inseting ..
我尝试插入行
如下所示
$message = new \Messages;
$message->setMessage((string)$vars['message']);
$message->setFrom((int)$vars['from']);
$message->setTo((int)$vars['to']);
$this->em->persist($message);
$this->em->flush();
我收到以下错误。
捕获致命错误:传递给Messages :: setFrom()的参数1必须是UserDetails的实例,给定整数,在第31行的C:\ wamp \ xxxxxxxx.php中调用,并在C:\ wamp \ xxxxxxx中定义第156行的实体\ Messages.php。
答案 0 :(得分:2)
您需要查找或创建与该ID对应的UserDetails
对象,并将其用作setFrom
的参数。
答案 1 :(得分:1)
你需要传递对象实例,就像Dan说的那样。例如:
$from = $this->em->find('UserDetails', (int) $vars['from']);
$to = $this->em->find('UserDetails', (int) $vars['to']);
$message = new \Messages;
$message->setMessage((string)$vars['message']);
$message->setFrom($from);
$message->setTo($to);
$this->em->persist($message);
$this->em->flush();