RedBean 中的多个关系
Posted
技术标签:
【中文标题】RedBean 中的多个关系【英文标题】:Multiple relations in RedBean 【发布时间】:2013-11-13 07:51:00 【问题描述】:我正在使用 ReadBean 3.5.1(使用 mysql)构建一个消息传递系统。每个用户可以有多条消息,因此对于 RedBean 来说这是一个简单的一对多关系,如下所示:
$sender = R::load('user', 1);
$message = R::dispense('message');
$message->stuff = "Hello world";
$sender->ownMessage[] = $message;
我现在要做的是使用 RedBean 抽象将 recipient 用户与消息相关联。我可以手动获取收件人的 ID 并将其存储在 messages
表的列中,但是有没有办法可以用 RedBean 来代替?
【问题讨论】:
【参考方案1】:这个问题的解决方案实际上有点倒退到发布的内容。您需要创建一条消息并为其分配两个用户模型,而不是相反。这是一个例子:
// Make some models
list($sender, $recipient) = R::dispense('user', 2);
$message = R::dispense('message');
// Set some data
$sender->name = 'Sender';
$recipient->name = 'Recipient';
$message->title = "Hello world";
// Associate users and message
$message->sender = $sender;
$message->recipient = $recipient;
// Store everything
R::store($message);
真的很简单。 RedBean 负责在调用R::store($message)
时存储更新的用户信息。然后消息表如下所示:
+----+-------------+-----------+--------------+
| id | title | sender_id | recipient_id |
+----+-------------+-----------+--------------+
| 6 | Hello world | 3 | 4 |
+----+-------------+-----------+--------------+
【讨论】:
以上是关于RedBean 中的多个关系的主要内容,如果未能解决你的问题,请参考以下文章