Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 红豆关系定义_Php_Orm_Relational Database_Foreign Key Relationship_Redbean - Fatal编程技术网

Php 红豆关系定义

Php 红豆关系定义,php,orm,relational-database,foreign-key-relationship,redbean,Php,Orm,Relational Database,Foreign Key Relationship,Redbean,我不是在跟踪,我是如何准确地定义红豆中的关系的,不是在动态中 我有一个用户,可以有一个被视为雇主的家长用户。另一方面,用户可以有员工,他们也是用户 我该如何定义这一点 我希望界面是这样的: $user = R::load('user', $id); var_dump($user->hasEmployees); // show all employees var_dump($user->ownEmployer); // show my employer 但看起来,我每次都要这样定义它

我不是在跟踪,我是如何准确地定义红豆中的关系的,不是在动态中

我有一个
用户
,可以有一个被视为
雇主的家长
用户
。另一方面,
用户
可以有
员工
,他们也是
用户

我该如何定义这一点

我希望界面是这样的:

$user = R::load('user', $id);
var_dump($user->hasEmployees); // show all employees
var_dump($user->ownEmployer); // show my employer
但看起来,我每次都要这样定义它们:

$user->hasEmployees = R::findAll('user', 'employer_id = ?', array($user->id));
$user->ownEmployer  = R::load('user', $user->employer_id);
// Dispense the beans
list($employer, $employee1, $employee2) = R::dispense('employee', 3);

// Create relations
$employer->ownEmployeeList = array($employee1, $employee2);

// Demonstrate relations
var_dump($employer->ownEmployeeList); // returns $employee1 and $employee2
var_dump($employee1->employee); // returns $employer
这样做违背了建立动态系统的目的。由于没有真正的模型(或者不是一个非常广泛的模型),我假设您创建了一次关系并使用它们,而RedBean知道下次会这样做吗

还是每次访问模型时都必须定义这种关系?(在这种情况下,我可以在模型中使用dispense()方法吗?)

如果是这样的话,这到底是怎么回事

我错过了什么


谢谢

你应该在redbeanpp.com上查看一下。 关系是通过严格的命名约定创建的。在您的情况下,其工作原理如下:

$user->hasEmployees = R::findAll('user', 'employer_id = ?', array($user->id));
$user->ownEmployer  = R::load('user', $user->employer_id);
// Dispense the beans
list($employer, $employee1, $employee2) = R::dispense('employee', 3);

// Create relations
$employer->ownEmployeeList = array($employee1, $employee2);

// Demonstrate relations
var_dump($employer->ownEmployeeList); // returns $employee1 and $employee2
var_dump($employee1->employee); // returns $employer

我是否必须在每次使用中“建立关系”?或者,如果我在其他地方访问$employer->ownEmployeeList,并且它在数据库中有正确的数据,我是否可以假设$employer->ownEmployeeList会为我带来已填充的列表?一旦填充了表,$employer->ownEmployeeList将返回一个雇员数组。您不需要重新创建关系。