对于模糊的标题感到抱歉,如果有人想编辑它以反映我发布的内容的更多信息,请执行此操作。情况就是这样。我有3张桌子:
支持:
id | contact_id |标题|问题|等
supportlogin:
id | contact_id |登录|通过|等
接触:
id | first_name | last_name |电子邮件|等
我正在加载支持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;
访问它,但动态执行似乎是个问题....
答案 0 :(得分:1)
想出来,如果其他人遇到类似的问题,我会把它留下来:
这只有在您拥有1:1的关系时才有效。 Redbean将ownSupportlogin
填充为与联系人相关的所有supportlogin行的数组。如果一个表可以有多个子表,那么您将需要遍历该数组并提取所需的数据。如果它是1:1的关系,那么你可以使用PHP的reset()
来访问数组中第一个元素的数据:
echo reset($support->contact->ownSupporlogin)->login;