我使用 PHPActiveRecord。假设我有一个表 Manager 和一个表Employees。一个经理有多个员工,一个员工有一个经理。
我已经定义了这个关联:
- 模型经理:
static $has_many = { array('employee')}
- 模范员工:
static $belongs_to = { array('manager')}
$manager->employee
给我一个包含 Employee 实例的数组。
如何选择最年长的员工?或最后一个员工的姓名。如何在关联数据中使用条件?我可以像下面这样扩展关联:
- 模型经理:
static $has_many = { array('employee', 'order' => 'age desc', 'limit => 1')}
或者
- 模型经理:
static $has_many = { array('employee', 'order' => 'id desc', 'limit => 1')}
但是有了这个解决方案,我必须为每个新案例创建一个新的关联。
是否存在更好的解决方案?像下面这样的东西?
$manager->employee->last()->name
选择最后一名员工的姓名$manager->employee->find('limit => 1, 'order' => 'age desc')
选择最后一名员工