私はPHPActiveRecordを使用しています。テーブル Manager とテーブル Employees があるとします。マネージャーには複数の従業員がいて、従業員にはマネージャーが 1 人います。
私はこの関連付けを定義しました:
- モデルマネージャー:
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')
最後の従業員を選択する