Laravel 为什么DB:选择工作,而DB::table不';不行?

Laravel 为什么DB:选择工作,而DB::table不';不行?,laravel,postgresql,eloquent,Laravel,Postgresql,Eloquent,我对Laravel的DB:table有问题。 我使用PostgreSQL,但它不起作用。 这是我的疑问: $User = Db::table('immobilier.prg_programmes as prog') ->select('select prg_libelle') ->join(' immobilier.liaisons_rol_act_tyr_prg ','immobilier.liaisons_rol_act_tyr_prg.prg_id','=','im

我对Laravel的DB:table有问题。 我使用PostgreSQL,但它不起作用。 这是我的疑问:

$User = Db::table('immobilier.prg_programmes as prog')
   ->select('select prg_libelle')
   ->join(' immobilier.liaisons_rol_act_tyr_prg ','immobilier.liaisons_rol_act_tyr_prg.prg_id','=','immobilier.prg_programmes.prg_id')
   ->join('immobilier.liaisons_rol_act as ra','b.rol_act_id','=','ra.rol_act_id ')
   ->join(' immobilier.act_acteurs as act','ra.act_id','=','act.act_id  ')
   ->join(' immobilier.tra_tranches as tra','prog.prg_id','=','tra.prg_id  ')
   ->get();
但是使用
DB:select

$user = DB::select('select prg_libelle as nom_programme,prog.prg_id ,act_libelle as nom_promotteur, tra_libelle as nom_tranche
   from  immobilier.prg_programmes as prog
   inner join  immobilier.liaisons_rol_act_tyr_prg as b  on b.prg_id =prog.prg_id
   inner join  immobilier.liaisons_rol_act as ra on b.rol_act_id =ra.rol_act_id 
   inner join  immobilier.act_acteurs as act on ra.act_id =act.act_id 
   inner join immobilier.tra_tranches as tra on prog.prg_id = tra.prg_id 
   order by prog.prg_id ASC;
   ');
我需要使用
DB:table
进行分页。
谢谢你的帮助

selectmethod”参数是您想要实际选择的列。它不能包括
select
关键字:

$User = Db::table('immobilier.prg_programmes as prog')
   ->select(['prg_libelle'])
   ->join('immobilier.liaisons_rol_act_tyr_prg ', 'immobilier.liaisons_rol_act_tyr_prg.prg_id','=','immobilier.prg_programmes.prg_id')
   ->join('immobilier.liaisons_rol_act as ra','b.rol_act_id','=','ra.rol_act_id ')
   ->join('immobilier.act_acteurs as act','ra.act_id','=','act.act_id  ')
   ->join('immobilier.tra_tranches as tra','prog.prg_id','=','tra.prg_id  ')
   ->get();

您应该将此部分
->select('select prg_libelle')
更改为:
->选择('prg_libelle')


->selectRaw('prg_libelle')

在join指令中,您使用从未声明过的别名“b”

->join('immobilier.liaisons_rol_act as ra','b.rol_act_id','=','ra.rol_act_id ')

您会遇到什么错误?如果将
get()
替换为
toSql()
,您可以看到实际生成的SQL查询,并将其与您需要的查询进行比较。可能有助于找到问题所在,但我仍然得到以下错误:SQLSTATE[42P01]:未定义的表:7 ERREUR:la relation«immobilier.connections\u rol\u act\u tyr\u prg»n'existe pas第1行:表存在吗?