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

Fetching records from Many to Many relationship does not work as expected in Phalcon

我已经根据他们提供的文档创建了 phalcon 模型和关系,但是在尝试获取多对多关系中的相关记录时出现错误 "Notice: Undefined property: Phalcon\Mvc\Model\Resultset\Simple::$GroupsMembers in /var/www/html/uno/apps/webservice/controllers/UserController.php on line 245"。

我有 3 个表用户、组和 group_members。 group_members 包含组的关系并且 users.I 想要获取成员的所有订阅组因此我在 UserController 中使用了以下语句:


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

报错如上

请访问下面的 link 以查看我的表格、模型和控制器。

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

谢谢。

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

将代码调整为

$subscribed_groups = $user->GroupsMembers;

它应该可以工作。

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

正确答案是:

find() 方法是 returning Phalcon\Mvc\Model\Resultset\Simple 的一个实例,但是 findFirst() 将 return 您的对象的一个​​实例(在您的情况下是 User)。

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