我正在跟踪Yii Blog tutorial,在做评论部分时被这个错误卡住了。
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'post_id' doesn't have a default value. The SQL statement executed was: INSERT INTO `tbl_comment` (`status`, `content`, `author`, `email`, `url`, `create_time`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5)
同样的错误也出现在status上,但我在数据库中设置了默认值。但这次是post_id,我不知道如何解决它。Post ID是另一个表的FK。Here是整个数据库设计。
谢谢你!
1条答案
按热度按时间wkyowqbh1#
看起来您的“post_id”属性(可能是您的主键)没有设置为“auto increment”,或者在数据库中设置为“not null”。请查看以下ORM。将其与您的ORM进行比较,并修复您的数据库端错误。另外,不要忘记通过. GII升级您的模型!
否则,如果“post_id”不是主键,并且未设置为“auto increment”,则可以尝试以下方法来解决此问题:
解决方案1)在保存/更新之前在php中设置“post_id”,如:
解决方案2)在您的数据库ORM中为属性“post_id”添加一个默认值。(因为我不知道您的关系和ORM的正确性。)
表详细信息: