Mysql 如何在RedBeanPHP中提取外键相关的bean?
我正在一个新项目中使用RedBean PHP ORM 1.2和Zend和Mysql。我仍然在学习它的过程中,它在很多情况下都非常有效,除了我找不到如何加载外键相关的bean。请允许我解释一下 我有两张桌子;成员和提要。每个“提要”都通过MySQL中的外键链接到一个成员。排序模式如下所示:Mysql 如何在RedBeanPHP中提取外键相关的bean?,mysql,orm,php-5.3,Mysql,Orm,Php 5.3,我正在一个新项目中使用RedBean PHP ORM 1.2和Zend和Mysql。我仍然在学习它的过程中,它在很多情况下都非常有效,除了我找不到如何加载外键相关的bean。请允许我解释一下 我有两张桌子;成员和提要。每个“提要”都通过MySQL中的外键链接到一个成员。排序模式如下所示: Member table: ID - Primary Key NAME - A text field Feeds Table: ID - Primary Key COMMENT - A text fi
Member table:
ID - Primary Key
NAME - A text field
Feeds Table:
ID - Primary Key
COMMENT - A text field
USER_ID - This is linked via a MySQL FK to Member.ID
我想做的是:
$feed = $rb->load('feeds',1);
$feed->member->NAME //this should get me the name of the member using the FK
但我不知道我怎么能做到这一点。我读过关于链接、关联和树的文章,但这些都不适用于表中已经存在数据的场景,我只需要拉取一个bean和另一个相关的bean。为了澄清,下面是实现我所需的代码:
$feed = $rb->load('feeds',1);
$member = $rb->load('members',$feed->USER_ID);
$member->NAME //This works
我真的想避免额外的一行,更重要的是必须在应用程序级别重新声明FK
欢迎您的意见和想法 RedBean是一种ORM,它支持代码而不是模式定义。尽管您可以使用带有前缀的模式的RedBean,但如果您只是将其当作对象数据库来处理,它实际上效果最好
R::setup();
class Model_Feed extends RedBean_SimpleModel {
public function getMember() {
$member = R::relatedOne($this->bean,"member");
return $member;
}
}
要测试这一点:
//test....
$feed = R::dispense("feed");
$feed->comment = "lorem ipsum";
$id = R::store($feed);
$member = R::dispense("member");
$member->name = "Xavier";
R::clearRelations($feed,"member",$member);
$feed = R::load("feed",$id);
echo $feed->getMember()->name; //prints: Xavier
它似乎不起作用,var_dump$feed->getMember->name;导致一个空值。。。