Упростить сохранение / обновление модели Laravel - PullRequest
0 голосов
/ 23 октября 2019

У меня есть массив, и я хочу упростить мой код, поэтому мне не нужно иметь if / else. Я попытался сделать только $variation = new \App\Variation($variation);, но это не сработало, так как он пытался создать новый вариант

массив Может быть 1 из следующих:

$variation = array('id' => NULL,'name' => 'Name');

$variation = array('id' => 2,'name' => 'Name 2');

Вот код для сохранения варианта:

if ($variation['id'])
{
    $fill_data = $variation;
    $variation = \App\Variation::find($variation['id']);
    $variation->fill($fill_data);

}
else
{
    $variation = new \App\Variation($variation);
}

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете использовать updateOrCreate метод. Его выявить вариации по первому параметру. Если какая-либо запись, она обновляется вторым параметром. Если записи нет, создается новая

Variation::updateOrCreate(
    ["id", "=", $variation["id"]],
    ["name","=", $variation["name"]]
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...