2

我一辈子都无法让 RedBeanPHP 返回关系的 bean/对象。

我创造了一个人。我附加了一个相关的照片 bean 并将其添加到此人的照片列表中。我救了那个人。数据库正确显示所有记录和关系。当我尝试加载 $person bean 并取消引用照片列表时,它总是 null !

   $person = R::dispense('person');
   $photo  = R::dispense('photo');

   $person->name="Bob";
   $photo->name="BigPic";

   $person->ownPhotos[] = $photo;
   R::store($person);

   $person = R::findOne('person', ' username = ? ', array("Bob"));
   $logger->dump("Person", $person); //It's a valid bean
   $logger->dump("Photos",$person->alias('photo')->ownPhotos); //It's null
   $logger->dump("Photos",$person->ownPhotos); //It's null

问题:
为什么$person->ownPhotos and $person->alias('photo')->ownPhoto总是为空?

4

1 回答 1

1

尽量不要复数 bean 名称:

$person = R::dispense('person');
   $photo  = R::dispense('photo');

   $person->name="Bob";
   $photo->name="BigPic";

   $person->ownPhoto = array($photo);
   R::store($person);

   $person = R::findOne('person', ' username = ? ', array("Bob"));
   $logger->dump("Person", $person); //It's a valid bean
   $logger->dump("Photos",$person->alias('photo')->ownPhoto); //It's null
   $logger->dump("Photos",$person->ownPhoto); //It's null

据我所知,Redbean 中还没有多元化功能,但我最近并没有真正使用它。文档(http://www.redbeanphp.com/adding_lists)表明它们也不是复数形式,所以我会坚持这一点。确保在查询后检查数据库以查看是否正确插入,而不仅仅是检查日志。如果有效,您应该会看到在您的照片表中创建的一行person_id

于 2013-08-08T19:59:50.383 回答