我有两个模型 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,
...
)
)
我已经在数据库中验证了对应于 A 的 B 行存在。我什至尝试执行主机查找查询(从 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