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将返回一个雇员数组。您不需要重新创建关系。