我想获得数据库中最后插入行的id,因此我在模型中创建了一个静态字段:
public static $lastid;
,我尝试重写create方法:
public static function create($data){
parent::create($data);
$lastid = DB::getPdo()->lastInsertId();
}
现在我有一个错误异常说:
Declaration of Actor::create() should be compatible with Illuminate'Database'Eloquent'Model::create(array $attributes)
我怎样才能使它工作?
这里,如果数据不是数组,则$data
之前的关键字array将打印致命错误。就像错误中所说的那样,您的类扩展了Illuminate'Database'Eloquent'Model
,并且应该与其父类兼容。
public static function create(array $data = array()){
parent::create($data);
$lastid = DB::getPdo()->lastInsertId();
}
当您使用Model::create
方法时,您可以直接从结果中获取ID。
$actor = Actor::create(array('name' => 'Jason'));
dd($actor->id);
您不需要使用来自PDO对象的lastInsertId
方法