【问题标题】:CakePHP Associated Models returning null?CakePHP 相关模型返回 null?
【发布时间】:2014-01-20 06:58:18
【问题描述】:

我在随机返回具有 NULL 值的变量时遇到问题。

我有这个模型关联结构:

Truck   $hasOne  Chassis
Chassis $hasMany Make
Chassis $hasMany Model
Truck   $hasOne  Type

随机结果将有类型的空结果或品牌和型号的空结果,但其他结果将有正确的结果..

0 (array)
 Truck (array)
 Chassis (array)
  id 1
  make_id 2
  model_id 2
  title Basic Chassis
  description This Basic Chassis is good for a lot of things, but advanced stuff is not one..
 Truck_make (empty)
 Truck_model (empty)

1 (array)
 Truck (array)
 Chassis (array)
  id (null)
  make_id (null)
  model_id (null)
  title (null)
  description (null)

您可以在上方看到 2 辆卡车已加载,第一辆的底盘已加载以及品牌和型号 ID,但不是品牌和型号的阵列。第二辆车也没有任何负载..

这是来自 MySQL Workbench 的关联屏幕截图: http://d.pr/i/JgMt

这些是被调用的查询。

Query   Affected    Num. rows   Took (ms)   Actions
SELECT `Truck`.`id`, `Truck`.`chassis`, `Truck`.`type`, `Truck`.`title`, `Truck`.`ref`, `Truck`.`hide_truck`, `Truck`.`featured_gallery`, `Truck`.`featured_home`, `Truck`.`created`, `Chassis`.`id`, `Chassis`.`make_id`, `Chassis`.`model_id`, `Chassis`.`title`, `Chassis`.`description`, `Type`.`id`, `Type`.`title`, `Type`.`desc` FROM `douglass_cake`.`trucks` AS `Truck` LEFT JOIN `douglass_cake`.`chassis` AS `Chassis` ON (`Chassis`.`id` = `Truck`.`id`) LEFT JOIN `douglass_cake`.`types` AS `Type` ON (`Type`.`id` = `Truck`.`id`) WHERE 1 = 1    
SELECT `Truck_make`.`id`, `Truck_make`.`make`, `Truck_make`.`hide_make` FROM `douglass_cake`.`truck_makes` AS `Truck_make` WHERE `Truck_make`.`id` = (1)0   
SELECT `Truck_model`.`id`, `Truck_model`.`model`, `Truck_model`.`hide_model` FROM `douglass_cake`.`truck_models` AS `Truck_model` WHERE `Truck_model`.`id` = (1)

【问题讨论】:

  • 所以我发现了'null'返回,它是 mysql 偏移量,但我仍然不明白为什么 CakePHP 会调用错误的行来生成和模型..

标签: php mysql cakephp model model-associations


【解决方案1】:

我发现了这个问题。看起来 MySQL Workbench 使用偏移量 2 而不是 1 写入表。Cakephp 期望使用默认偏移量,因此当将行返回到 cakephp 时,它从 1 开始读取它,而 MySQL 被告知从 2 开始。修复。愚蠢的错误

【讨论】:

  • @Ryamn 我们如何解决这个问题?
  • @ManthanBudheliya 我不记得了。我刚刚更改了默认偏移量。另外,我不再使用 MySQL 工作台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 2020-11-14
  • 2016-01-13
  • 1970-01-01
相关资源
最近更新 更多