gpt4 book ai didi

mysql - Laravel 4 的列值不正确

转载 作者:行者123 更新时间:2023-11-29 13:20:49 25 4
gpt4 key购买 nike

我在 Laravel 4 迁移中创建了一个列,如下所示:

public function up()
{
Schema::create(
'templates',
function (Blueprint $table) {
$table->increments('id');
// Omitted fields...
$table->smallInteger('pages')->default(0);

$table->timestamps();
$table->softDeletes();
}
);
}

当我尝试使用

保存实体时
$entity->save();

在我的 Controller 中,当字段值为空时,我收到该特定列的错误:

SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'pages' at row 1

我可以通过在模型中创建一个更改器(mutator)来解决这个问题,如下所示:

public function setPagesAttribute($value)
{
if (empty($value)) {
$this->attributes['pages'] = 0;
}
}

但是 Laravel/Eloquent 不应该这样做吗?

我只是想,我在这里做错了什么......

最佳答案

我在网上发现了一个解决方案:http://www.garethalexander.co.uk/tech/mysql-5-incorrect-integer-value-column-id-row-1

只需执行以下操作:

  • 编辑 my.cnf
  • 注释掉该行
    • sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  • 并运行 $ mysql.server restart

关于mysql - Laravel 4 的列值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20878317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com