Не изменяйте значение столбца mysql, если переменная запроса равна нулю в laravel eloquent - PullRequest
0 голосов
/ 16 сентября 2018

Мне нужно проверить, если $request->link_description is null, то ничего не меняйте или, лучше сказать, не трогайте значение столбца базы данных.

возможно ли это сделать без дополнительного запроса на выборку?

например:

 /** update ad Seat info */
 $Update_Seat = AdSeat::where('id', $id)->where('owner_id', $owner_id)
 ->update(['seat_name' => $seat_name,
         'seat_url' => $seat_url,
         'logo_src' => ($logo_src) ? $logo_src : null,
         'category_id' => $category_id,
         'plan' => $plan,
         'price_sale' => $price_sale,
         'link_description' => ($link_description) ? $link_description : null,
         'description' => ($description) ? $description : null,
         'income_percentage' => $income_percentage,
         'status' => STATUS_TO_APPROVE]);

Я имею в виду эту часть:

'link_description' => ($link_description) ? $link_description : null,

вместо null Я хочу поставить что-то вроде:

'link_description' => ($link_description) ? $link_description : AdSeat::whereId(5)->value('link_description),

Но, как я уже говорил, я ищу способ не запускать дополнительный запрос на выборку, как описано выше.

1 Ответ

0 голосов
/ 16 сентября 2018

Было бы проще создать массив данных заранее.Пример:

// Do not add $link_description here
$data = [
    'seat_url' => $seat_url,
    ...
];

// But add it if $link_description is not null
if (!is_null($link_description)) {
    $data['link_description'] = $link_description;
}

$Update_Seat = AdSeat::...->update($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...