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
.
\Application\Entity\Category
オブジェクトを受け入れるようにセッターメソッドを変更すると、もちろん機能します。生成されたすべてのメソッドに対してこれを行う必要がありますか、それとも他のオプションがありますか? 名前空間を使うのはこれが初めてなので、簡単なものかもしれません。