我正在尝试使用原则从MySQL数据库中获取对象。它与另一个具有一对一的关系。我收到此错误:Notice: Undefined index: id
我应该纠正什么才能使其正常工作?我的获取代码非常简单,我尝试获取所有对象:
$emArt = $this->getDoctrine()->getRepository(Article::class);
$articles = $emArt->findAll();
型号如下:
文章.php
/**
* @ORMEntity
* @ORMTable(name="Article")
*/
class Article
{
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $ID;
/**
* @ORMOneToOne(targetEntity="ArticleTypes", inversedBy="articleTypeId")
* @ORMJoinColumn(name="articleTypeId", referencedColumnName="id")
*/
private $articleType;
/**
* @ORMColumn(name="articleName", type="text")
*/
private $articleName;
/**
* @ORMColumn(name="content", type="text")
*/
private $content;
/**
* @ORMColumn(name="image", type="string")
* @AssertFile(mimeTypes={ "image/png" })
*/
public $image;
public function getArticleImage()
{
return $this->image;
}
public function setArticleImage($newImage)
{
$this->image = $newImage;
}
public function getArticleContent()
{
return $this->content;
}
public function setArticleContent($name)
{
$this->content = $name;
}
public function getArticleName()
{
return $this->articleName;
}
public function setArticleName($name)
{
$this->articleName = $name;
}
public function getArticleType()
{
return $this->articleType;
}
public function setArticleType($type)
{
$this->articleType = $type;
}
}
文章类型.php
/**
* @ORMEntity
* @ORMTable(name="ArticleTypes")
*/
class ArticleTypes
{
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
* @ORMOneToOne(targetEntity="Article", mappedBy="articleTypeId")
*/
private $ID;
/**
* @ORMColumn(name="articleType", type="text")
*/
private $articleType;
public function getArticleType()
{
return $this->articleType;
}
public function setArticleType($newType)
{
$this->articleType = $newType;
}
}
这是一个 PHP 注意不?您还应该在带有错误 ?
但是我也看到了你的学说映射中的错误:你不能在字段中使用这样的教义注释,你应该将你的关系链接到对象:
/**
* @ORMEntity
* @ORMTable(name="Article")
*/
class Article
{
/**
* @ORMOneToOne(targetEntity="ArticleTypes", inversedBy="article")
* @ORMJoinColumn(name="articleTypeId", referencedColumnName="id")
*/
private $articleType;
....
}
和:
/**
* @ORMEntity
* @ORMTable(name="ArticleTypes")
*/
class ArticleTypes
{
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Article $article
* @ORMOneToOne(targetEntity="Article", mappedBy="articleType")
*/
private $article;
....
}
即使您有一对一的关系,您也可以拥有不同的 ID。