Redbeanphp-从外键索引获取数据

Redbeanphp-从外键索引获取数据,php,redbean,Php,Redbean,很抱歉标题含糊不清,如果有人想编辑它以反映更多关于我发布的内容,请这样做。情况是这样的。我有三张桌子: 支持: 身份|联系|身份|头衔|问题|等 支持登录: id |联系人| id |登录|通行证|等 联系人: id |名字|姓氏|电子邮件|等 我正在加载支持bean,并且正在访问联系人信息: $support=R::load('support',1); echo $support->contact->first_name; 我想以类似方式回显supportlogin信息: ech

很抱歉标题含糊不清,如果有人想编辑它以反映更多关于我发布的内容,请这样做。情况是这样的。我有三张桌子:

支持:

身份|联系|身份|头衔|问题|等

支持登录:

id |联系人| id |登录|通行证|等

联系人:

id |名字|姓氏|电子邮件|等

我正在加载支持bean,并且正在访问联系人信息:

$support=R::load('support',1);
echo $support->contact->first_name;
我想以类似方式回显supportlogin信息:

echo $support->contact->ownSupportlogin->login;
这可能吗?我的做法是否正确?我尝试过以下方法,但没有成功:

echo $support->contact->supportlogin->login;
echo $support->contact->ownSupportlogin->login;
echo $support->contact->ownSupportlogin[0]->login;
编辑:更多信息 我打印了($support->contact),得到了数据:

RedBean_OODBBean Object
(
    [null:RedBean_OODBBean:private] => 
    [properties:RedBean_OODBBean:private] => Array
        (
            [id] => 109
            [phone] => 1234580970
            [first_name] => Tim
            [last_name] => Withers
        )

    [__info:RedBean_OODBBean:private] => Array
        (
            [type] => contact
            [sys.id] => id
            [tainted] => 
        )

    [beanHelper:RedBean_OODBBean:private] => RedBean_BeanHelperFacade Object
        (
        )

    [fetchType:RedBean_OODBBean:private] => 
)
然后我打印了($support->contact->ownSupportlogin),结果显示:

Array
(
    [13] => RedBean_OODBBean Object
        (
            [null:RedBean_OODBBean:private] => 
            [properties:RedBean_OODBBean:private] => Array
                (
                    [id] => 13
                    [link] => fecd4ef67e8c789efa1792f9ee0efff4
                    [login] => 
                    [password] => 
                    [receiveemails] => 1
                    [contact_id] => 109
                    [role] => 1
                )

            [__info:RedBean_OODBBean:private] => Array
                (
                    [type] => supportlogin
                    [sys.id] => id
                    [tainted] => 
                )

            [beanHelper:RedBean_OODBBean:private] => RedBean_BeanHelperFacade Object
                (
                )

            [fetchType:RedBean_OODBBean:private] => 
        )

)

我可以通过以下方式访问它:
echo$support->contact->ownSupportlogin[13]->login,但动态执行似乎是一个问题……

解决了它,并将保留它,以防其他人有类似的问题:

只有当你有1:1的关系时,这才有效。Redbean将
ownSupportlogin
填充为与联系人相关的所有supportlogin行的数组。如果一个表可以有多个子表,则需要循环该数组并提取所需的数据。如果是1:1关系,则可以使用PHP的
reset()
访问数组中第一个元素的数据:

echo reset($support->contact->ownSupporlogin)->login;
由于在这种情况下,人类几乎无法读取
print_r()
var_dump()
输出,因此我要提到的是,简单的supportlogin元素只需执行以下操作即可实现:
foreach($support->contact->ownSupportlogin as$supportlogin)echo$supportlogin->login。“