【问题标题】:Multiple relations in RedBeanRedBean 中的多个关系
【发布时间】: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 来代替?

【问题讨论】:

    标签: php orm 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 |
    +----+-------------+-----------+--------------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2015-10-11
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多