我的数据库中有两个表:
order
; course
。 order
有一列courseid
,它引用id
表的列course
。每当我在saveAll()
中尝试CakePHP
时,都会显示上述SQL
错误,并且不会保存数据。
答案 0 :(得分:16)
听起来你的表之间在数据库中有外键约束。这意味着在列course_id中,您不能插入与外表中的ID不同的值。
上述错误意味着当您发布数据时,外地字段为空或缺失。
寻找什么: 1.检查数据库中的子表中的外部字段是否可以接受NULL。如果您有值下拉列表,并且如果该字段不接受NULL,则默认选项为空,则可能发生此错误 2.如果您在示例中传递变量,请检查控制器中的数据:$ this-> data ['Order'] ['course_id']如果它为空或缺少,请参阅第1点。
答案 1 :(得分:0)
我只是为了其他任何有类似问题寻找答案的人做出回应。在其他框架中使用ORM时,我错误地尝试在保存我添加角色的内容之前分配角色或其他数据。例如:
创建新用户 -
$user = ORM::factory('user');
$user->username = 'SomeoneSpecial";
if ($user->add(ORM::factory('role', 'login') && $user->save() ) {
// continue on with code
}
用户已创建,但在尝试在保存用户之前添加角色时,您最终会找到没有角色的用户,并且确实会向您吐出错误的错误。