mysql - Laravel 有 : Column not found

标签 mysql laravel laravel-5.1 having laravel-pagination

我的以下代码是这样的:

$places = DivePlace::selectRaw("*,(st_distance_sphere( POINT(".$lon.",".$lat.") ,  point(lon, lat))/1000) as distance")
    ->havingRaw("distance < ".$radius)
    ->orderBy("distance")
    ->paginate(10);

没有“havingRaw”一切都很好。 添加后出现如下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'distance' in 'having clause' (SQL: select count(*) as aggregate from dive_places having distance < 300)

有什么解决办法吗?

最佳答案

->where(DB::raw("(ST_Distance_Sphere(POINT(".$lon.",".$lat."), POINT(lon,lat))/1000)"), '<', 200)

而不是 ->havingRaw("(st_distance_sphere( POINT(?, ?) , point(lon, lat))/1000) < ?", [$lon, $lat, $radius])

关于mysql - Laravel 有 : Column not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982661/

相关文章:

php - LARAVEL 单元测试 - 与 seeInDatabase 相反

laravel - 使用 Laravel 5.1 和 VueJS 的 TokenMismatchException

javascript - Express.js、mysql、通过一个属性分隔数据项

mysql - 需要将数据库转储导出为带有标题和行的 csv 格式

php - 电子邮件正文和标题在 Laravel 中不起作用

php - Laravel 中 Controller 查询 foreach 循环出现问题

laravel - 条件表连接

php - 通过 html 插入

php - mysql和重复条目报告

Laravel Artisan 队列 - 高 CPU 使用率