2014-03-19 2 views
0

나는 데이터베이스에 마지막으로 삽입 된 행의 ID를 얻으려면 그래서 난 내 모델의 정적 필드를 생성 :최우선 만들 웅변 모델

public static $lastid; 

와 나는이 방법을 만들 오버라이드 (override) 해보십시오

Declaration of Actor::create() should be compatible with Illuminate\Database\Eloquent\Model::create(array $attributes) 

가 어떻게이 일을 할 수 있습니다 :

public static function create($data){ 
    parent::create($data); 
    $lastid = DB::getPdo()->lastInsertId(); 
} 

는 지금은 오류 예외 말을?

+0

나는 목표를 모르지만 부모 메서드 create가 당신과 호환되어야하고 배열을 인수로 기다려야합니다 ... 그래서 그에게주세요. – Debflav

+0

PHP를 처음 접했을 때 배열이라고 말하면서 $ data 변수에 추가해야 할 것이 있습니까? –

답변

1

Model::create 방법을 사용하면 결과에서 바로 ID를 가져올 수 있습니다.

$actor = Actor::create(array('name' => 'Jason')); 

dd($actor->id); 

PDO 개체의 lastInsertId 메서드를 사용할 필요가 없습니다.

+0

나는 또한이 아이디어를 얻는다. 그리고 그것은 잘 작동한다, 그것을 확인해 주셔서 감사합니다. –

2

$data 이전의 키워드 배열은 데이터가 배열이 아니면 치명적인 오류를 표시합니다. 마찬가지로 오류가 발생하면 학급이 Illuminate\Database\Eloquent\Model으로 확장되며 부모와 호환되어야합니다.

public static function create(array $data = array()){ 
    parent::create($data); 
    $lastid = DB::getPdo()->lastInsertId(); 
}