从多对多关系中获取记录在Phalcon中无法正常工作

时间:2015-02-23 08:42:55

标签: many-to-many phalcon

我已经创建了phalcon模型和关系,因为他们提供了文档但得到错误"注意:未定义属性:Phalcon \ Mvc \ Model \ Resultset \ Simple :: $ GroupsMembers in / var / www / html第245行和第34行的/uno/apps/webservice/controllers/UserController.php;在尝试获取多对多关系中的相关记录时。

我有3个表用户,组和group_members。 group_members包含组和用户的关系。我想获得成员的所有订阅组,因此我在UserController中使用了以下语句:


    $user = Users::find('id = '.$user_id);
    $subscribed_groups = $user->groupsMembers;
    foreach($groupMembers as $groupMember){
        echo $groupMember->groups->title;
    }

它给出了上面提到的错误。

请访问以下链接查看我的表格,模型和控制器。

http://forum.phalconphp.com/discussion/5928/fetching-records-from-many-to-many-relationship-does-not-work-as-expected-in-phalcon

感谢。

2 个答案:

答案 0 :(得分:1)

感谢Calin Rada(http://forum.phalconphp.com/user/283/calinrada)的回答。

正确答案是:

find()方法返回Phalcon \ Mvc \ Model \ Resultset \ Simple的实例,但findFirst()将返回对象的实例(在您的情况下为User)。

详细答案: http://forum.phalconphp.com/discussion/5928/fetching-records-from-many-to-many-relationship-does-not-work-as

答案 1 :(得分:0)

您使用别名GroupsMembers,但随后将其称为$ user-> groupsMembers,这会导致未定义的属性通知。

将代码调整为

$subscribed_groups = $user->GroupsMembers;

它应该有用。