Отношения RedBeanPHP

Я не могу на всю жизнь заставить RedBeanPHP возвращать bean-компоненты/объекты для отношений.

Я создал человека. Я прикрепил соответствующий фото-объект и добавил его в список фотографий человека. Я спас человека. БД корректно показывала все записи и отношения. Когда я пытаюсь загрузить bean-компонент $person и разыменовывать список фотографий, он всегда равен нулю!

   $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 всегда равно нулю?


person user2665310    schedule 08.08.2013    source источник
comment
попробуйте ownPhotosList[] вам может понадобиться сбросить и восстановить базу данных   -  person merdan    schedule 06.06.2014


Ответы (1)


Попробуйте не использовать имя компонента во множественном числе:

$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, если она работает.

person Tim Withers    schedule 08.08.2013