我对Doctrine有一个奇怪的问题。我已经设置了以下结构:
String regex = "^-?[0-9]+$";
if (s.matches(regex) {
// it's a number
} else {
// not a number
}
和
/**
* @ORM\Entity
* @ORM\Table(name="fp_credit_returned_product")
*/
class ReturnedProduct {
...
/**
* @var FpCredit\Models\Credit\ReturnedProductDetail
* @ORM\OneToMany(targetEntity="\FpCredit\Models\Credit\ReturnedProductDetail", mappedBy="returned_product", cascade={"persist"})
*/
private $details;
public function getDetails() {
return $this->details;
}
public function setDetails($details) {
$this->details = $details;
}
然后我查询所有的returnProducts并执行以下操作:
/**
* @ORM\Entity
* @ORM\Table(name="fp_credit_returned_product_detail")
*/
class ReturnedProductDetail {
/**
* @var FpCredit\Models\Credit\ReturnedProduct
* @ORM\ManyToOne(targetEntity="\FpCredit\Models\Credit\ReturnedProduct")
* @ORM\JoinColumn(name="returned_product_id", nullable=false, referencedColumnName="id")
*/
private $returnedProduct;
public function getReturnedProduct() {
return $this->returnedProduct;
}
public function setReturnedProduct($returnedProduct) {
$this->returnedProduct = $returnedProduct;
}
由于foreach ($errorLogs as $eLog) {
$errorDetails = $eLog->getDetails();
if ($errorDetails) {
foreach ($errorDetails as $errorDetail) {
$errorArticle = $errorDetail->getArticle();
}
}
}
我收到此错误:
$errorDetail->getArticle()
有谁知道为什么会出现这种错误以及如何修复它?我的映射有问题吗?一个ReturnedProducts有几个ReturnProductDetails。
感谢您的帮助!
答案 0 :(得分:6)
您可以在您的班级中试用ReturnedProduct
mappedBy="returnedProduct"
问候。