我想将值绑定到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()
函数执行此操作?
感谢您的帮助。
答案 0 :(得分:1)
不是很优雅,但它有效:
$user = User::find(3);
$newCoordinates = ['coordinates' => DB::raw("GeomFromText('POINT(?, ?)')")];
$user->newQuery()->setBindings([$lat, $lng], 'join')
->whereKey($user->id)->update($newCoordinates);
如果要更新更多属性,则必须在'coordinates'
之后添加它们。