我正在使用 Zend Framework 1 和 Bisna 库来集成 Doctrine 2。我使用 Doctrine 2 CLI 从我的数据库模型生成了我的实体。这一切都很好,除了关联记录的设置方法。他们接受的参数必须是一个特定的命名空间(\Category
这里)。
class Article
{
public function setCategory(\Category $category = null) {
$this->category = $category;
return $this;
}
}
但是,当我这样做时:
$article = $this->em->getRepository('\Application\Entity\Article')->find(1);
$category = new \Application\Entity\Category();
$category->SetName('New Category');
$article->setCategory($category);
我收到以下致命错误:Argument 1 passed to Application\Entity\CategoryField::setCategory() must be an instance of Category, instance of Application\Entity\Category given
.
当我将 setter 方法更改为接受\Application\Entity\Category
对象时,它当然可以工作。我应该为每个生成的方法都这样做,还是有其他选择?这是我第一次使用命名空间,所以可能很简单。