使用雄辩的联接会导致错误的id结果

时间:2019-11-20 11:04:41

标签: laravel eloquent

我有以下查询,但由于加入的结果,id字段完全混淆了。例如,电话ID被制造商ID覆盖。

 $phones = \App\Phone::
        join('phone_manufacturers', 'phones.phone_manufacturers_id', '=', 'phone_manufacturers.id')
        ->orderBy('phone_manufacturers.manufacturer_name')
        ->paginate(20);

如何设置别名,以便在我给phone-> id打电话时能产生正确的结果?我尝试使用“ With”代替,但随后在排序结果时遇到问题。

1 个答案:

答案 0 :(得分:3)

通过指定选择,可以避免id被联接表字段重叠的问题。

 $phones = \App\Phone::select('phones.*')
    ->join('phone_manufacturers', 'phones.phone_manufacturers_id', '=', 'phone_manufacturers.id')
    ->orderBy('phone_manufacturers.manufacturer_name')
    ->paginate(20);

如果您需要phone_manufacturers中的字段,请使用该关系。