Laravel: 未找到列
Laravel: Column not found
我正在尝试在 Laravel 中设置以下 SQL。
$projects = DB::table(DB::raw('places, areas, areas_places'))
->select('projects.*')->distinct()
->leftJoin('tags_places as r', 'r.place_id', '=', 'places.place_id')
->leftjoin('tags as t', 't.id', '=', 'r.tag_id')
->join('areas_places as e', 'e.place_id', '=', 'places.place_id')
->join('areas as a', 'a.area_id', '=', 'e.area_id')
但是,我不断收到以下错误。
Column not found: 1054 Unknown column 'places.place_id' in 'on clause'
该列存在于数据库中。我还检查了该列是否拼写正确——是的。那么我可能会错过什么?我正在使用 Laravel Mix 版本 4.0.7
我明白问题出在哪里了。我只是不需要 DB::raw
声明。这按预期工作没有问题:
$projects = DB::table('projects')
->select('projects.*')->distinct()
->leftJoin('tags_places as r', 'r.place_id', '=', 'places.place_id')
->leftjoin('tags as t', 't.id', '=', 'r.tag_id')
->join('areas_places as e', 'e.place_id', '=', 'places.place_id')
->join('areas as a', 'a.area_id', '=', 'e.area_id')
IGP 与 toSql()
核对的建议对解决这个问题很有帮助。
我正在尝试在 Laravel 中设置以下 SQL。
$projects = DB::table(DB::raw('places, areas, areas_places'))
->select('projects.*')->distinct()
->leftJoin('tags_places as r', 'r.place_id', '=', 'places.place_id')
->leftjoin('tags as t', 't.id', '=', 'r.tag_id')
->join('areas_places as e', 'e.place_id', '=', 'places.place_id')
->join('areas as a', 'a.area_id', '=', 'e.area_id')
但是,我不断收到以下错误。
Column not found: 1054 Unknown column 'places.place_id' in 'on clause'
该列存在于数据库中。我还检查了该列是否拼写正确——是的。那么我可能会错过什么?我正在使用 Laravel Mix 版本 4.0.7
我明白问题出在哪里了。我只是不需要 DB::raw
声明。这按预期工作没有问题:
$projects = DB::table('projects')
->select('projects.*')->distinct()
->leftJoin('tags_places as r', 'r.place_id', '=', 'places.place_id')
->leftjoin('tags as t', 't.id', '=', 'r.tag_id')
->join('areas_places as e', 'e.place_id', '=', 'places.place_id')
->join('areas as a', 'a.area_id', '=', 'e.area_id')
IGP 与 toSql()
核对的建议对解决这个问题很有帮助。