我想得到数据库中最后一个插入行的id,所以我在模型中创建了一个静态字段:
public static $lastid;
我尝试覆盖create方法:
public static function create($data){
parent::create($data);
$lastid = DB::getPdo()->lastInsertId();
}
现在我有一个Error异常说:
Declaration of Actor::create() should be compatible with Illuminate\Database\Eloquent\Model::create(array $attributes)
我该如何做到这一点?
答案 0 :(得分:2)
此处,如果数据不是数组,$data
之前的关键字数组将打印致命错误。
就像在错误中说的那样,你的班级延伸Illuminate\Database\Eloquent\Model
并且应该与他的父母兼容。
public static function create(array $data = array()){
parent::create($data);
$lastid = DB::getPdo()->lastInsertId();
}
答案 1 :(得分:1)
使用Model::create
方法时,您可以直接从结果中获取ID。
$actor = Actor::create(array('name' => 'Jason'));
dd($actor->id);
您不应该使用PDO对象中的lastInsertId
方法。