将值绑定到DB :: raw for UPDATE

时间:2018-06-07 12:34:22

标签: php laravel pdo eloquent

我想将值绑定到DB::raw(...)查询部分,但仅限于 UPDATE ,因此我既不想要select(DB::raw('...'), [...])也不想要{{1} } whereRaw('...', [...])

例如,我希望能够将值绑定到以下setBindings([...])

DB::raw

如果它不适用于$user = User::find(3); $newCoordinates = ['coordinates' => DB::raw("GeomFromText('POINT(:lat :lng)')")]; $user->update($newCoordinates); 函数,是否有办法为update()函数执行此操作?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不是很优雅,但它有效:

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

如果要更新更多属性,则必须在'coordinates'之后添加它们。