Обновлять запись вместо вставки, если где с большим ассоциативным массивом - PullRequest
0 голосов
/ 10 марта 2020

У меня есть большой ассоциативный массив, подобный этому:

$ar = [
    "column_name" => "column_value"
]

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

Я пытался с этим:

$rec = MyModel::where($ar)->first();
If ($rec === null) {
    // the record does not exist => insert it
} else {
    // the record does exist => update it
}

Это не работает. Запись (даже если я создаю массив с одинаковыми значениями) всегда вставляется

Ответы [ 2 ]

2 голосов
/ 10 марта 2020

Вы можете использовать метод updateOrCreate: https://laravel.com/docs/7.x/eloquent#other -creation-method

1 голос
/ 10 марта 2020

Вы можете использовать Eloquent updateOrCreate метод:

$rec = MyModel::updateOrCreate($ar);

Проверьте Laravel документы для получения дополнительной информации;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...