【问题标题】:CakePHP saveAll methodCakePHP saveAll 方法
【发布时间】:2014-08-25 20:55:39
【问题描述】:

在我提交表单时使用的注册表单:

$this->User->saveAll($this->request->data, array('validate' => 'first', 'deep' => true));

此行失败。它无法保存我的新用户和所有相关数据。 我收到此错误:

Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (myDBName.individuals, CONSTRAINTgraduate_id_fkFOREIGN KEY (education_id) REFERENCESeducations(id) ON DELETE NO ACTION ON UPDATE NO ACTION)

我猜 CakePHP 正在尝试保存我的第一个与用户表记录相关的记录,这就是我收到此错误的原因。 有谁知道如何设置保存对象的顺序? 如何查看生成的查询?

谢谢各位。

【问题讨论】:

  • 您的表是否使用递增 ID?如果是这样,它们是否设置为正确递增?
  • 首先,最好共享有效负载的数组结构和数据库模式。其次,在使用 Cake 时,我通常不会在数据库中设置约束和规则。而是在模型验证规则中指定它们。因此只能在一处更新规则。

标签: php mysql cakephp


【解决方案1】:

将查询输出到视图或日志文件:

输出到视图:

<?php echo $this->element('sql_dump'); ?>

输出到日志:

$db =& ConnectionManager::getDataSource('default');
$db->showLog();

如果您在查看查询后仍然遇到问题,请将您收集的调试信息连同您传递的数组一起发布到 saveAll()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多