Laravel 4.2 Eloquent create:数组到字符串转换错误

时间:2017-02-15 14:57:06

标签: php laravel laravel-4

我正在使用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()发生错误,那将会有所帮助。

PHP v5.6.3

EDITED
我可以确保$data内没有数组值。使用$datainsert()方法时create()使用同一个save(),但会出错。

1 个答案:

答案 0 :(得分:1)

添加array类型提示:

 public function insertUserInfo(array $data)
 {
    return self::create($data);
 }