Laravel 5.2 雄辩的 save() 方法在 Oracle 中存储编号 0 成为4294967296



使用雄辩的 save(( 方法保存数据时遇到问题。

例如,当我插入像 0 这样的数字时,表中的数字会变得4294967296。

甲骨文表

这是我的代码:

$user = new User;
$user->username = 'lolol';
$user->name = 'lolol';
$user->email = 'lolol@lolol.com';
$user->domain = 'lolol';
$user->active_directory = 0;
$user->save();

但是,当我使用这样的原始查询时没有问题:

DB::insert('insert into users (id, username, name, email, active_directory, domain) values (?, ?, ?, ?, ?, ?)', [10,'dayle', 'Dayle', 'dayle', '0', 'esdm']);

它会将 0 插入到表中。

有没有办法解决这个问题?

感谢您的帮助和回答。

这里可能确实存在一个错误,但考虑到向查询传递字符串而不是整数是有效的,一个简单的解决方法是在用户模型中实现一个 setter 突变器,它将active_directory属性转换为字符串,然后再保存它。

//other User model methods....
public function setActiveDirectoryAttribute($attrValue){
    $this->attributes['active_directory'] = (string) $attrValue;
}

最新更新