Laravel Eloquent создает метод, пропускающий идентификаторы и возвращающий их - PullRequest
1 голос
/ 09 апреля 2019

Я просто пытаюсь создать новую модель с помощью метода создания Eloquent. Однако мы видим, что новая модель иногда будет содержать идентификатор, который был пропущен в mysql. Этот идентификатор обозначен как столбец автоинкремента в mysql.

Мы также видим, как это происходит при использовании DB: getPdo () -> lastInsertId () сразу после создания модели.

$questionResponse = $response->questionResponses()->create([
   'survey_question_id' => $question->id,
   'response' => 5
]);

$response_id = $questionResponse->id; // weve also used DB::getPdo()->lastInsertId();

Queue::push('TheWorker', array('survey_id' => $survey->id, 'response_id' => $response_id, 'question_id' => $question->id, 'user_id' => $user->id, 'student_target_id' => $student_target_id));

Затем происходит сбой TheWorker из-за получения неверного $ repsonse_id, которого нет в БД.

Мы ожидаем, что вновь созданная модель будет содержать идентификатор, соответствующий записи, созданной в MySQL.

Заранее спасибо!

...