Привязать значения к DB :: raw для UPDATE - PullRequest
0 голосов
/ 07 июня 2018

Я хочу привязать значения к части запроса DB::raw(...), но только для ОБНОВЛЕНИЕ , поэтому я не хочу ни select(DB::raw('...'), [...]), ни whereRaw('...', [...]), ни setBindings([...]).

Например, я хочу иметь возможность привязать значения к следующему DB::raw:

$user = User::find(3);
$newCoordinates = ['coordinates' => DB::raw("GeomFromText('POINT(:lat :lng)')")];
$user->update($newCoordinates);

Если это не работает для функции update(), есть ли способ сделать этоза функцию save()?

Спасибо за помощь.

1 Ответ

0 голосов
/ 07 июня 2018

Не очень элегантно, но работает:

$user = User::find(3);
$newCoordinates = ['coordinates' => DB::raw("GeomFromText('POINT(?, ?)')")];
$user->newQuery()->setBindings([$lat, $lng], 'join')
    ->whereKey($user->id)->update($newCoordinates);

Если вы хотите обновить больше атрибутов, вы должны добавить их после 'coordinates'.

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