Laravel 5.2 Eloquent의 매우 이상한 행동에 직면하고 있습니다. 테이블에 행을 삽입하려고하면 ID가 증가한 객체가 반환됩니다. 이제 문제는 반환하는 ID가 해당 행의 ID가 아니라는 것입니다.ID가 잘못되었습니다. Laravel Eloquent
내 코드 : 나는 그것이 데이터베이스에서 제품 ID 난의 기록을 만들 책임이 동기화 컨트롤러를 개발 5.
경우에도 31을 반환 $product_p->id
에 액세스하려고
DB::beginTransaction();
//create a new product
$product_p = new Product();
$product_p->name = $request->name;
$product_p->barcode = $request->barcode;
$product_p->sale_price = $request->sale_price;
$product_p->save();
echo $product_p->id; //this gives invalid ID
DB::commit();
실행 된 모든 쿼리, 추가 조사에서 ID가 잘못된 ID를 담당하고 있음을 발견했습니다.
내 경로 파일
// SyncController
\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
$sync = new \App\Http\Controllers\SyncController();
$sync->addOperation($query->sql, $query->bindings);
});
내 동기화 컨트롤러
DB::beginTransaction();
$sync = New Sync();
$sync->action = $sql;
$sync->data = json_encode($data);
$sync->save();
DB::commit();
제품
id Primary int(10) UNSIGNED AUTO_INCREMENT
name varchar(255)
barcode int(11)
sale_price int(11)
에 대한 나의 DB 구조이 내 제품 마이그레이션입니다
Schema::create('products', function(Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('barcode')->unique();
$table->integer('sale_price');
$table->timestamps();
});
은 당신이 다른 데이터베이스를 사용하는 수 있습니까? – Yada
nopes. 제품 모델을 사용하고 있습니다. 클래스 제품 확장 모델 { \t \t 보호 된 $ fillable = [ 'name', 'barcode', 'sale_price']; \t \t protected $ table = "products"; ** 제품 ** ** 표를 확인하고 있습니다 ** –
게시를 완료하려면 게시물을 업데이트해야한다고 생각합니다. 제공하신 최신 정보만으로는 직면하고있는 문제를 효과적으로 시뮬레이션 및 해결할 수 없습니다. 또한 쉽게 구별 할 수 있도록 파일 내용에 레이블을 지정하십시오. 귀하의 테이블 및/또는 스크립트의 스크린 샷이 똑같이 도움이 될 수 있습니다. – nyedidikeke