Laravel多表联接:如何将两个表与所有列和一个列除外连接起来

时间:2020-04-30 08:32:46

标签: laravel join eloquent laravel-query-builder

我有两个具有100多个列的表。 我想将除了一个列之外的所有列都加入两个表。


$ agents =代理人:: join('cities','cities.id','city_id)-> select('agents。*','cities.name as city')-> get();


。 。 现在加入所有代理表,但我不想要egents.user_id

2 个答案:

答案 0 :(得分:1)

在模型中使用make hidden数组是很好的,使用makeHidden函数将列隐藏在需要序列化的地方:

$agents = agents::where('your query')->get();
$agents ->makeHidden(['user_id']);
return response()->json($agents);

我希望你喜欢

答案 1 :(得分:0)

我可以知道表格的内容吗? 像例子吗?

如果是laravel,我会这样:

DB::table('users')
->select('users.*','profiles.photo', 'profiles.one_by_one')
->join('profiles','profiles.id','=','users.id')
->where(['something' => 'something', 'otherThing' => 'otherThing'])
->get();

您只需取消选择您不想加入的列即可。

您可以尝试

DB::table('users')
->select('users.*','profiles.*')

->except('users.id')
OR
->exclude('users.id')

->join('profiles','profiles.id','=','users.id')
->where(['something' => 'something', 'otherThing' => 'otherThing'])
->get();

请进行测试

在模型laravel中,将其添加到您不想看到某些列的模型中。

protected $hidden = array('column_you_dont_want_to_see');