我有两个模型A和B.关系的定义如下所述。
A hasOne B
B belongsTo A
几天前,一切都很顺利。在过去的几天里有些东西发生了变化,现在当我在A上进行查找(递归设置为2)时,它返回B的值,但所有值都返回为NULL,包括B的ID。
A (id - 1220, other_fields)
B (id - 11, a_id - 1220, other_fields)
结果数组看起来像这样。
array(
'A' => array(
'id' => 1220,
'field1' => 'dsdsa',
...
)
'B' => array(
'id' => null,
'a_id' => null,
...
)
)
我已经在数据库中验证了B的行存在对应于A.我甚至尝试执行Host查询(从SQL调试转储中复制)并且它正确地返回结果,因此数据库级别没有任何错误。它是蛋糕(或我自己)弄乱了数据。
这一切都运转良好,但出了点问题,我很难弄清楚是什么。
这是查询(用A代替主机,用B代替服务)
SELECT `Host`.`id`, `Host`.`user_id`, `Host`.`title`, `Host`.`featured`, `Host`.`slug`, `Host`.`profile_type`, `Host`.`social_security_number`, `Host`.`biz_id`, `Host`.`address`, `Host`.`lat`, `Host`.`lon`, `Host`.`description`, `Host`.`type`, `Host`.`size`, `Host`.`unavailability`, `Host`.`kids`, `Host`.`supervision`, `Host`.`emergency_transport`, `Host`.`experience`, `Host`.`first_aid`, `Host`.`oral_medication`, `Host`.`injected_medication`, `Host`.`payment_mode`, `Host`.`paypal_email`, `Host`.`name_on_check`, `Host`.`payment_address`, `Host`.`bank_name`, `Host`.`bank_account_number`, `Host`.`balance`, `Host`.`pending_balance`, `Host`.`approved`, `Host`.`created`, `Host`.`modified`, `Service`.`id`, `Service`.`host_id`, `Service`.`day_care`, `Service`.`day_care_price`, `Service`.`day_night_care`, `Service`.`day_night_care_price`, `Service`.`walking`, `Service`.`walking_price`, `Service`.`walking_max_distance`, `Service`.`checkup_visit`, `Service`.`checkup_visit_price`, `Service`.`checkup_visit_max_distance`, `Service`.`grooming`, `Service`.`grooming_price`, `Service`.`bathing`, `Service`.`bathing_price`, `Service`.`pickndrop`, `Service`.`pickndrop_price`, `Service`.`training`, `Service`.`training_price`, `Service`.`cancellation_policy`, `Service`.`accept_last_min_bookings`, `Service`.`created`, `Service`.`modified` FROM `hosts` AS `Host` LEFT JOIN `services` AS `Service` ON (`Service`.`host_id` = `Host`.`id`) WHERE `Host`.`id` = 2569 ORDER BY `Host`.`created` DESC LIMIT 1