Laravel:如何使用多态关系雄辩模型从表中轻松获取值?

安德烈亚斯·亨特

我的数据库表中有员工列表:

表:员工

在此处输入图片说明

员工型号代码:

public function workplace()
{
    return $this->morphTo();
}

公司型号代码:

public function workers()
{
    return $this->morphMany('App\Employee', 'company');
}

分公司型号代码:

public function workers()
{
    return $this->morphMany('App\Employee', 'company');
}

现在我以不同的形式获取用户工作:

$userWorkplaces = Employee::where('user_id', Auth::id())->get();
$workplace_info = [];

foreach ($userWorkplaces as $workplace) {
    if($workplace->company_type == "App\Company") {
        $company = Company::findOrFail($workplace->company_id);
        $type = 'Company';
    } elseif($workplace->company_type == "App\Branch") {
        $company = Branch::findOrFail($workplace->company_id);
        $type = 'Branch';
    }

    $workplace_info[] = [
        'company' => $company->name,
        'type' => $type
    ];
}

dump($workplace_info);

结果:

array:3 [
  0 => array:2 [
    "company" => "Mahorat"
    "type" => "Company"
  ]
  1 => array:2 [
    "company" => "Babolo"
    "type" => "Company"
  ]
  2 => array:2 [
    "company" => "Филиал Махорат"
    "type" => "Branch"
  ]
]

如何通过在模型中创建 Laravel 关系来轻松获得样本结果?

油烟机

您必须更改Employee关系函数名称,company因为您在员工表中company_idcompany_type字段

员工型号代码:

public function company()
{
    return $this->morphTo();
}

现在获取数据

$employees = Employee::where('user_id', Auth::id())->get();
$workplace_info = [];
foreach($employees as $employee){
   $workplace_info[]['company'] = $employee->company;
   $workplace_info[]['type'] = get_class($employee->company);
}

dd($workplace_info);

详情https://laravel.com/docs/5.6/eloquent-relationships#polymorphic-relations

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel雄辩的模型如何从关系表中获取数据

来自分类Dev

使用雄辩的多态关系对Laravel中的数据进行分类

来自分类Dev

Laravel 5.6 如何获取模型的多态关系,返回null

来自分类Dev

在Laravel5中使用雄辩模型获取表值

来自分类Dev

使用关系在单个雄辩的查询laravel中获取数据?

来自分类Dev

如何在Laravel 5.2中使用多对多态关系

来自分类Dev

如何使用elequent模型从laravel表中获取不同的记录?

来自分类Dev

如何从关系表中获取ID,Laravel

来自分类Dev

Laravel-雄辩的:与名称空间的多态关系

来自分类Dev

Laravel-雄辩的:与名称空间的多态关系

来自分类Dev

Laravel雄辩的联盟关系模型

来自分类Dev

如何在Laravel中通过另一种模型设置雄辩的关系属于?

来自分类Dev

如何让 Laravel 资源使用多态关系

来自分类Dev

如何通过雄辩的关系选择模型功能-Laravel?

来自分类Dev

使用完整模型名称的 Laravel 多态关系

来自分类Dev

如何从表中获取值

来自分类Dev

Laravel雄辩的关系3表

来自分类Dev

如何使用Lua从表中的表获取值?

来自分类Dev

在Laravel 4.1中使用雄辩的ORM在同一表中查询关系

来自分类Dev

laravel 5.1:如何从模型中获取嵌套关系?

来自分类Dev

急切加载:如何从具有多态关系的表中获取几张照片

来自分类Dev

在Rails中获取多态关系表名称的方法。元编程

来自分类Dev

Laravel使用数据透视表进行雄辩的多对多关系

来自分类Dev

如何从模型中获取值和计数?

来自分类Dev

如何使用laravel雄辩地联接表?

来自分类Dev

Laravel雄辩:更新模型及其关系

来自分类Dev

Laravel雄辩的保存关系模型失败

来自分类Dev

Laravel雄辩关系中的“关键”

来自分类Dev

Laravel雄辩中的命名关系

Related 相关文章

  1. 1

    Laravel雄辩的模型如何从关系表中获取数据

  2. 2

    使用雄辩的多态关系对Laravel中的数据进行分类

  3. 3

    Laravel 5.6 如何获取模型的多态关系,返回null

  4. 4

    在Laravel5中使用雄辩模型获取表值

  5. 5

    使用关系在单个雄辩的查询laravel中获取数据?

  6. 6

    如何在Laravel 5.2中使用多对多态关系

  7. 7

    如何使用elequent模型从laravel表中获取不同的记录?

  8. 8

    如何从关系表中获取ID,Laravel

  9. 9

    Laravel-雄辩的:与名称空间的多态关系

  10. 10

    Laravel-雄辩的:与名称空间的多态关系

  11. 11

    Laravel雄辩的联盟关系模型

  12. 12

    如何在Laravel中通过另一种模型设置雄辩的关系属于?

  13. 13

    如何让 Laravel 资源使用多态关系

  14. 14

    如何通过雄辩的关系选择模型功能-Laravel?

  15. 15

    使用完整模型名称的 Laravel 多态关系

  16. 16

    如何从表中获取值

  17. 17

    Laravel雄辩的关系3表

  18. 18

    如何使用Lua从表中的表获取值?

  19. 19

    在Laravel 4.1中使用雄辩的ORM在同一表中查询关系

  20. 20

    laravel 5.1:如何从模型中获取嵌套关系?

  21. 21

    急切加载:如何从具有多态关系的表中获取几张照片

  22. 22

    在Rails中获取多态关系表名称的方法。元编程

  23. 23

    Laravel使用数据透视表进行雄辩的多对多关系

  24. 24

    如何从模型中获取值和计数?

  25. 25

    如何使用laravel雄辩地联接表?

  26. 26

    Laravel雄辩:更新模型及其关系

  27. 27

    Laravel雄辩的保存关系模型失败

  28. 28

    Laravel雄辩关系中的“关键”

  29. 29

    Laravel雄辩中的命名关系

热门标签

归档