我想做以下事情:
MyModel::where(MyModel::sql_distance_to(), ['lat' => '...', 'lng' => '...'])->get();
sql_distance_to()
返回一些复杂的 sql 表达式。但据我所知,查询生成器不支持命名绑定(bind)。这是真的?任何解决方法?
最佳答案
我相信你的意思是使用 Query Scopes
class MyModel extends Model
{
public function scopeSqlDistanceTo($query, $lat, $lon)
{
// Previously DB::raw(expr) was here.
// No need since we're using whereRaw()
$whereRaw = 'lat = ? AND lon = ?';
return $query->whereRaw($whereRaw, [$lat, $lon]);
}
}
用法:
$latitude = 0.0;
$longitude = 180.0;
MyModel::sqlDistanceTo($latitude, $longitude)->get();
关于php - 如何在 laravel 的查询生成器中使用命名绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39255375/