Laravel 4.1 -> 4.2 打破查询绑定
Laravel 4.1 -> 4.2 breaking Query bindings
我刚从 4.1 升级到 4.2,一些查询出现问题。有没有办法在不扩展任何内容的情况下重新编写此查询?
这在 Laravel 4.1 中可以正常工作,但在 4.2 中却不行。
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", "?")
->orderBy("name")
->setBindings([$lat, $lng, $lat,$radius])
->get();
如果我像这样在半径中硬编码,我尝试将其分解并让它工作:
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", 25)
->orderBy("name")
->setBindings([$lat, $lng, $lat])
->get();
是否有新的语法可以用来解决这个问题,以便我可以为半径传递动态值?
感谢我能得到的任何帮助。干杯。
为什么不只是这个?
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", $radius)
->orderBy("name")
->setBindings([$lat, $lng, $lat])
->get();
我刚从 4.1 升级到 4.2,一些查询出现问题。有没有办法在不扩展任何内容的情况下重新编写此查询?
这在 Laravel 4.1 中可以正常工作,但在 4.2 中却不行。
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", "?")
->orderBy("name")
->setBindings([$lat, $lng, $lat,$radius])
->get();
如果我像这样在半径中硬编码,我尝试将其分解并让它工作:
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", 25)
->orderBy("name")
->setBindings([$lat, $lng, $lat])
->get();
是否有新的语法可以用来解决这个问题,以便我可以为半径传递动态值?
感谢我能得到的任何帮助。干杯。
为什么不只是这个?
$stores = Store::select(
DB::raw("id,name,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->having("distance", "<", $radius)
->orderBy("name")
->setBindings([$lat, $lng, $lat])
->get();