- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
多对多映射在redbean中很容易使用,场景简单。但是如何在同一个对象之间进行多个多对多映射?
例子:
我想要完成的是在结构上与“followers”和“following”的 twitter/instagram 设置非常相似
// this c
$user = R::dispense('user');
$user2 = R::dispense('user');
// ..
//Usr1 follows user2
$user->sharedUser[] = $user2;
// user2 follows user1
$user2->sharedUser[] = $user1;
现在,我想从 user1 的角度列出关注者和关注的用户。
但是,如果不查询数据库中的所有用户并查找 user1,我就无法列出“关注者”。有没有什么方法可以在 redbean 中有多个“共享”列表或针对这些特定情况的任何好的解决方法,或者查询方式是否可行?
最佳答案
这是我在测试中使用的代码,以证明它有效:)
<?php
include_once 'rb.php';
R::setup();
//create users
$users = array();
foreach (array('arul', 'jeff', 'mugunth', 'vish') as $name) {
$user = R::dispense('user');
$user->name = $name;
$user->follows = R::dispense('follows');
//create variables with specified names ($arul, $jeff, etc)
$$name = $user;
$users[] = $user;
}
//set relationships
$arul->follows->sharedUser = array($jeff);
$mugunth->follows->sharedUser = array($jeff, $arul);
$vish->follows->sharedUser = array($arul, $mugunth);
R::storeAll($users);
//print relationships
$id = 1;
while (true) {
echo "-----------------------------------\n";
$u = R::load('user', $id++);
if (!$u->id) break;
echo "$u->name follows " . count($u->follows->sharedUser) . " user(s) \n";
if ($u->follows) {
foreach ($u->follows->sharedUser as $f) {
echo " - $f->name \n";
}
}
echo "\n$u->name is followed by "
. R::getCell("SELECT COUNT(*) FROM follows_user WHERE user_id = $u->id")
. " user(s) \n";
foreach ($u->sharedFollows as $f) {
$follower = array_shift($f->ownUser);
echo " - $follower->name \n";
}
}
/* echos the following
-----------------------------------
jeff follows 0 user(s)
jeff is followed by 2 user(s)
- arul
- mugunth
-----------------------------------
arul follows 1 user(s)
- jeff
arul is followed by 2 user(s)
- mugunth
- vish
-----------------------------------
mugunth follows 2 user(s)
- jeff
- arul
mugunth is followed by 1 user(s)
- vish
-----------------------------------
vish follows 2 user(s)
- arul
- mugunth
vish is followed by 0 user(s)
-----------------------------------
*/
关于php - Redbean,多个多对多使用相同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542102/
我目前使用的是 RedBean 3.5 版。我想我想转移到最新版本的 RedBean,版本 4。 我没有找到关于升级过程的文档,只是表明它并不简单。 我的问题是: 我的 RedBean 3.5 数据库
我想使用一对多和多对多关系检索一些数据 我创建了名为 floor、shop、category 的 bean,并将它们关联为: floor 1:N shop floor N:M category sho
我正在使用 RedBean ORM。为了创建模式,我使用了标准的 redbean 插入数据的方法,以便 Redbean 自动适应模式以满足我的需要。我把它放在一个脚本中,当我需要初始化我的数据库时,它
我正在使用 RedBean 创建时间表应用程序。 这是(简化的)数据库结构: 所有者 编号 姓名 电子邮件 项目 编号 描述 owner_id 任务 编号 描述 项目编号 日志 编号 开始 结束 描述
我有一个从 Redbean 生成的名为“聚合”的表,包含这些列: id - INT(11) user_id - TINYINT(3) code - VARCHAR(255) sampl
多对多映射在redbean中很容易使用,场景简单。但是如何在同一个对象之间进行多个多对多映射? 例子: 我想要完成的是在结构上与“followers”和“following”的 twitter/ins
我今天来这里是因为我无法弄清楚我使用 RedbeanPHP 进行的交易有什么问题。我猜问题出在 MySQL 的“autocommit”值上,因为它始终处于打开状态。 长话短说: 1) R::freez
我在使用 RedBean 时遇到了一些问题。我收到连接错误,无法弄清楚是什么意思,我已经查看过 Google 并找不到任何有效的解决方案,我在这里尝试了一个类似的问题,但答案对这种情况并没有真正帮助.
或者我们可以这样做吗?当你说: $book = R::dispense('books'); 并使用 RedBean_IModelFormatter 处理命名还是我遗漏了什么? 谢谢。 最佳答案 你可以
我有以下结构 USER user_id name EVENT event_id user_id event_name 如何在redbean中编写inner join? SELECT * FR
我有三张 table USER user_id,name EVENT event_id, name,desc PARTICIPATION id, type 1 yes 2
我目前在我的模型中将 RedBean 用于 ORM。 我需要将数据插入到其中一列设置为唯一的 MySQL 表中。 目前,数据是通过这样的形式插入的: //Create $object = R::dis
我正在使用 RedBean PHP ORM 来尝试注册/获取用户。也就是说,给定一个逗号分隔列表,我做 $emails = explode(',', trim($app->request->post
我最近开始使用 Redbean PHP。所以我不太了解它是如何处理事情的。直到现在,我都喜欢它为我做东西是多么简单。但是我今天遇到了一个很大的问题。我需要将信用卡号存储到表中。但是一旦我存储了这个 b
我有两个 MySQL 表: user email 电子邮件表有一个来自用户的外键。我在用户表中插入一条记录并获取插入 ID,然后插入到电子邮件表中。 我在 RedBean 中是这样做的 $user =
我正在考虑使用 RedBean 作为 ORM 映射器。目前,我正在使用自己的实现,但随着项目变得越来越大和越来越复杂,效果不是很好。 然而,有一个问题我无法找到: 就有人注入(inject)代码/查询
我刚刚注意到,在使用 PHP 和 RedBean(以及一个事务)将一些数据导入 MySQL 数据库时,我可以看到在导入运行时行数在增加。为了证实我的怀疑,我在导入函数的末尾将 R::commit()
我正在使用 RedBean ORM 编写一些代码,我想知道我是否可以仅从数据库表中加载/检索某些字段。我知道有一个加载方法,但它将整个表作为 bean 提供。我希望只获取一些字段? 嘿,当我写它的时候
RedBeanPHP uses class naming convention将模型绑定(bind)到表上。我不能遵守该命名约定,因为我有一个表名不是一成不变的项目。我需要一种方法将 RedBean_
我有两个表,table1 和 table2,通过多对多连接。到目前为止没有问题,但我会因为在生产使用中使用下面的代码而导致服务器崩溃。访问多对多连接会生成非常多的查询。 是否有更好的方法来访问数据(无
我是一名优秀的程序员,十分优秀!