php - 如何在 laravel 的查询生成器中使用命名绑定(bind)?

标签 php sql laravel eloquent

我想做以下事情:

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/

相关文章:

使用 GitHub 将 Laravel 部署到 azure windows web 应用程序会出现错误需要 ext-fileinfo * -> 它在您的系统中丢失

javascript - 如何将 css 文件插入其中而不是声明颜色

sql - 在 SQL 中创建分区函数

sql - 如何在没有安装 dev 库的情况下在 C 中使用 sqlite3?

php - Laravel 5 资源 Controller

javascript - 使用 PUT 方法 Angularjs 发送文件

php - 为什么我不能从这个网站上删除标题?

php - 如何在不直接访问文件的情况下在网站上提供可下载的发票?

php - 如果值存在则更新多个 MySql 行

jquery - codeigniter 文本框 id 中的 jquery 自动完成功能不起作用