Странный прослушиватель Laravel DB заставляет вставку запроса возвращать неправильный идентификаторPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Странный прослушиватель Laravel DB заставляет вставку запроса возвращать неправильный идентификатор

Сообщение Anonymous »

Я столкнулся со странной проблемой, возможно, из-за ошибки или моей ошибки, когда Eloquent create возвращает неверный идентификатор. Это происходит, когда я помещаю DB::listen в класс поставщика услуг и сохраняю в базе данных все запросы, обнаруженные в DB::listen.
НО странно, когда я пытаюсь вставить такого пользователя: :create($input), он возвращает идентификатор QueryActivity, а не идентификатор пользователя. Например, идентификатор должен быть 20, но он возвращает 100 из таблицы QueryActivity
журналы из User::create($input)
[2020-02-23 12:42:46] постановка.ИНФО: {"first_name":"Тестирование","last_name":"Tesgin","username":"Тестирование","staff_id":"12313123","mobile_pho ne":"01231232323","active":true,"email":"testing@gmail.com","create_by":1,"updated_at":"2020-02-23 12:42:46","create_at":"2020-02-23 12:42:46","id":123,"fake_password":"5ebe2294ecd0e0f08eab7690d2a6ee69 "
Над журналами выделен только неправильный идентификатор. Остальные детали верны.

Красноречиво

Код: Выделить всё

$user = User::create($input);
И в моем классе ObserverServiceProvider.

Код: Выделить всё

    DB::listen(function ($query) {
try {
if (preg_match('(query_activities)', $query->sql) == 0) {
QueryActivity::createUsingQueryBuilder([
'connection_name' => $query->connectionName,
'time_taken' => $query->time,
'query' => $query->sql,
'bindings' => Utils::aesEncrypt(json_encode($query->bindings)),
'created_at' => now(),
'updated_at' => now(),
]);
}
} catch (\Exception $exception) {
LogCentre::channel('query')->info($exception->getMessage());
}
});
в классе QueryActivity

Код: Выделить всё

class QueryActivity extends Model
{
protected $fillable = [
'connection_name',
'time_taken',
'query',
'bindings'
];

public static function createUsingQueryBuilder(array $activity)
{
DB::connection((new self)->getConnectionName())->table((new self)->getTable())->insert($activity);
}
}
Кто-нибудь сталкивался с этой проблемой?

Подробнее здесь: https://stackoverflow.com/questions/603 ... n-wrong-id
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»