How to define relations with cakePHP?
我已经阅读过关于对流的文章,并且我的应用程序/数据库是直接的。
我也读过关于 $hasOne、$hasMany、$belongsTo 等的文章
但是,我正面临一个我无法为自己解决的问题/问题。
我的模型:汽车、活动、加油、维修
我的控制器: CarsController
我的关系:
1 2 3 4 | class Car extends AppModel { public $BelongsTo = array('User'); public $hasMany = array('Event'); } |
.
1 2 3 4 | class Event extends AppModel { public $BelongsTo = array('Car'); public $hasOne = array('Refuel'); } |
.
1 2 3 | class Refuel extends AppModel { public $BelongsTo = array('Event'); } |
从 CarsController 执行的 find() 的输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | array( 'Car' => array( 'id' => '1', 'user_id' => '1', 'make' => 'Make', 'model' => 'Model', ), 'Event' => array( (int) 0 => array( 'id' => '1', 'car_id' => '1', 'dateEvent' => '20-10-2014', 'description' => '1' ), (int) 1 => array( 'id' => '2', 'car_id' => '1', 'dateEvent' => '20-10-2014', 'description' => '2' ), (int) 2 => array( 'id' => '3', 'car_id' => '1', 'dateEvent' => '20-10-2014', 'description' => '3' ) ) ) |
你需要知道:
汽车属于用户。用户可能有很多辆车
车上有很多活动。一个活动只有一辆车。
每个事件都应与一次加油或一次维修相关联。一次加油或维修不能关联多个事件。
表格:
用户:id
汽车:id,user_id
事件:id,car_id
加油:id,event_id(唯一)
修复:id,event_id(唯一)
你错过了
1 2 3 |
我发现 array('recursive' => 2) 解决了这个问题!
但是这是什么,为什么?