2

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

支持:

编号 | 联系方式 | 标题 | 问题 | ETC

支持登录:

编号 | 联系方式 | 登录 | 通过 | ETC

接触:

编号 | 名字 | 姓氏 | 电子邮件 | ETC

我正在加载支持 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;

编辑:更多信息 我做了print_r($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] => 
)

然后我做到了print_r($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;,但是动态执行它似乎是一个问题....

4

1 回答 1

1

想通了,如果其他人有类似的问题,会留下来:

这仅在您拥有 1:1 关系时才有效。Redbean 将 填充ownSupportlogin为与联系人相关的所有 supportlogin 行的数组。如果一个表可以有许多子表,那么您将需要遍历该数组并提取所需的数据。如果是 1:1 的关系,那么您可以使用 PHPreset()访问数组中第一个元素的数据:

echo reset($support->contact->ownSupporlogin)->login;
于 2012-07-31T20:51:06.207 回答