首页 > 解决方案 > Laravel RESTful API

问题描述

当我在 postgresSQL 上的 SQL 将被实施到 Laravel 时,我遇到了问题

查询是

SELECT
    ID AS id_bpr,
    0 AS bpr_cabang,
    bpr
FROM
    m_bpr
WHERE
    ID != 0

该查询已在 Navicat 上成功处理,但是当我尝试在 Laravel 中实现该查询时,该查询不起作用。这是laravel中的代码。

$allBpr = DB::table('m_bpr')
                    ->select('id as id_bpr',
                            '0 as bpr_cabang',
                            'bpr')
                    ->where('id', '!=', 0)
                    ->get();

为什么我将该查询实现到 laravel?

标签: laravelpostgresql

解决方案


Laravel 将尝试解析SELECT查询部分中的所有字段。因为0不是有效的列,所以这将失败。

将选项包裹\DB::raw()起来告诉 Laravel 不解析字符串。

$allBpr = DB::table('m_bpr')
    ->select(
        'id as id_bpr',
        \DB::raw('0 as bpr_cabang'),
        'bpr'
    )
    ->where('id', '!=', 0)
    ->get();

推荐阅读