压倒创造雄辩的模型

时间:2014-03-19 14:43:11

标签: php laravel-4 eloquent

我想得到数据库中最后一个插入行的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)

我该如何做到这一点?

2 个答案:

答案 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方法。