【发布时间】:2017-02-15 14:57:05
【问题描述】:
我正在使用 Laravel 4.2.* 我有一个 User 模型,其中 insert() 方法正常工作,但是当我使用 create() 方法时它会抛出错误:
数组到字符串的转换
我的模特:
class User extends Eloquent{
public $table = 'users';
protected $primaryKey = 'user_id';
protected $fillable = ['first_name', 'last_name', 'created_by'];
public function insertUserInfo($data)
{
//return self::insert($data); //working with no error but not adding `created_at`
return self::create($data); //Array to string conversion
}
}
样本数据:
$data = [
'first_name' => 'Jhon',
'last_name' => 'Doe',
'created_by' => Auth::id() // var_dump(Auth::id()) => int(11)
];
如果有人可以帮助我了解create() 抛出错误的原因,那将会很有帮助。
PHPv5.6.3
已编辑
我可以保证$data 中没有数组值。同样的$data 与insert() 一起工作,但在使用create() 或save() 方法时抛出错误。
【问题讨论】:
-
var_dump($data)也许有些事情不是你想的那样。 -
@aynber:是的,我已经检查过了,但是所有字段都符合预期,而且相同的数据集正在使用
insert方法。 -
也许
Auth::id()正在返回一个数组... -
@NetGuy: var_dump(Auth::id()) => int(11).
-
你为什么不使用
$user = new User($data);然后$user->save();