gpt4 book ai didi

mysql - 根据列值连接 3 个表 - Laravel

转载 作者:行者123 更新时间:2023-11-29 15:11:58 25 4
gpt4 key购买 nike

线索表

  • ID
  • 标题
  • owner_id
  • 来自_表

员工表

  • ID
  • 名字
  • 姓氏
  • 角色

管理表

  • ID
  • 名字
  • 姓氏
  • 角色
$users = Leads::query();

return Datatables::make($users)

->editColumn('owner_id', function ($user) {
if($user->from_table == 'employee'){
$emp = Employee::where('id',$user->owner_id)->first();
return $emp->first_name.' '.$emp->last_name.' ('.$emp->role.')';
}
if($user->from_table == 'admin'){
$admin = Admin::where('id',$user->owner_id)->first();
return $admin->first_name.' '.$admin->last_name.' ('.$admin->role.')';
}
})

上述解决方案工作正常,但我们无法在数据表中按列进行单独搜索。

我想要的是加入查询,例如:

if(leads.from_table == 员工)//从 EMPLOYEE TABLE 获取数据,即 LEADS TABLE + EMPLOYEE TABLE

  • ID
  • 标题
  • owner_id
  • 来自_表
  • 名字
  • 姓氏
  • 角色

if(leads.from_table == admin)//从 ADMIN TABLE 获取数据,即 LEADS TABLE + ADMIN TABLE

  • ID
  • 标题
  • owner_id
  • 来自_表
  • 名字
  • 姓氏
  • 角色

最佳答案

我认为你应该改变你的数据库结构以使用多态关系,它们完全符合你的需求 - https://laravel.com/docs/5.8/eloquent-relationships#polymorphic-relationships

关于mysql - 根据列值连接 3 个表 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60001225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com