Laravel 多个 table 联接:如何将两个 table 与所有列联接,但一列除外

Laravel multiple table join: how to join two table with all columns and except one column

我有两个 table 超过 100 列。 我想将两个 table 与除一列之外的所有列连接起来。


$agents = agents::join('城市','cities.id','city_id)->select('agents.*','cities.name 作为城市')->get();


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

我可以知道 table 的内容吗? 举个例子?

如果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');

在模型中使用 make hidden array 很好,使用 makeHidden 函数在需要的地方隐藏你的列:

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

希望你喜欢