“ leftJoin()”不会使用Knex.js返回带有Objection ORM的联接表数据

时间:2019-03-28 08:51:31

标签: javascript postgresql knex.js objection.js

当我将Knex leftJoin()方法与Objection.js模型一起使用时,

leftJoin仅返回第一个表数据,而不返回第二个表。当我直接在终端中使用psql进行相同查询时,效果很好

查询如下:

public function store(Request $request)
{
//        dd($request);
//        $mapData = Input::get('mapData');
//        dd($mapData);
    if(request()->ajax()){

        $mapData = Input::get('mapData');
        $map = new Map;
        $map->user_id = auth()->user()->id;
        $map->map = $mapData;
        $map->save();

        return response()->json(['status' => 'succes', 'message' => 'saved in database','data' => $mapData]);

    } else {

        return response()->json(['status' => 'fail', 'message' => 'this is not json']);

    }
}

我希望结果将包含const result = await Table1Model.query() .leftJoin( 'table_2', 'table_2.table_2_id', 'table_1.table_2_id' ) .where('table_1_id', '=', table1Id); 与ID匹配的所有table_2列。

我只获得table_1的列

1 个答案:

答案 0 :(得分:0)

如果您只想从table_2中获取列,

const result = await Table1Model.query()
      .leftJoin(
        'table_2',
        'table_2.table_2_id',
        'table_1.table_2_id'
      )
      .columns('table_2.*') // add columns
      .where('table_1_id', '=', table1Id);