正在开发一个项目,其中有一个名为“Product”的类和一个名为“Image”的类。每个产品都有两种类型的图像,一种是“正面”图像,一种是“背面”图像,因此我定义了两个字段,一个称为 image_front_id,一个称为 image_back_id。
在方法 BaseProduct::setUp() 中,我定义了前面图像的关系,如下所示:
$this->hasOne( 'Image', array ('local' => 'image_front_id', 'foreign' => 'id' ) );
现在,显然,当我为“Image”类定义另一个“hasOne”时,但现在使用“image_back_id”的本地字段名,这是行不通的。所以我的问题是:如何定义与同一类的多个“一对一”关系?我已经找这个有一段时间了,但似乎找不到。
最佳答案
正确答案是
$this->hasOne('Image as FrontImage', array('local' => 'image_front_id', 'foreign' => 'id'));
$this->hasOne('Image as BackImage', array('local' => 'image_back_id', 'foreign' => 'id'));
关于PHP/Doctrine ORM 多个 'one-to-one' 与同一类的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744278/