Doctrine 2.0 - 添加时出现问题

时间:2011-08-17 05:02:52

标签: php doctrine-orm

我正在使用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。

2 个答案:

答案 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();     
相关问题