使用eloquent 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。
有什么方法可以解决这个问题吗?
感谢您的帮助和回答。
答案 0 :(得分:0)
这里可能确实存在一个错误,但考虑到将字符串而不是整数传递给查询,一个简单的解决方法是在User模型中实现一个setter mutator,它会在保存之前将您的active_directory属性强制转换为字符串。 / p>
//other User model methods....
public function setActiveDirectoryAttribute($attrValue){
$this->attributes['active_directory'] = (string) $attrValue;
}