Laravel查询连接,相同的名称在多个表


Laravel query with joins, same name in multiple tables

我有一个大查询。出于各种目的,我将使用一个较小的查询作为示例重新创建这个问题:

DB::table('cases')
    ->join('contacts', 'cases.id', '=', 'contacts.id')
    ->select('cases.name', 'contacts.name')
    ->get();

然后在laravel的模板(刀片)当我做foreach循环并打印结果时,它从{{ $case->name }}

的案例表中打印结果

我明白这个问题和为什么会发生,但是我怎样才能使它正常工作?

这是一个PDO限制,与laravel无关。如果两者都需要,则必须在查询中使用别名:

DB::table('cases')
    ->join('contacts', 'cases.id', '=', 'contacts.id')
    ->selectRaw('cases.name as cases_name, contacts.name as contacts_name')
    ->get();