从数据透视表Laravel访问表的所有信息

问题描述 投票:0回答:1

我希望有人帮忙解决这个问题,问候,我有一个数据透视表这个字段是什么只有其他表的公司,分支机构,部门,工作,雇员的ids

'id',
'company_id',
'branch_id',
'department_id',
'job_id',
'employee_id'

我想访问所有信息时,我只咨询一个我希望与thePivot()使用的注册表,但我不明白需要做什么我已经在模型Company.php中有这个

public function getAllInformation()
{
    return $this->belongsToMany(Company::class, 'companies_branches_departments_jobs_employes', 'id', 'company_id');
}

在控制器中我有这个

public function index()
{
    $items = Company::with('getAllInformation')->limit(1)->get();
    $information =
        [
            'items' => $items,
            'total' => count($items)
        ];
    return $information;
}

这给了我第一家公司的信息和函数getAllInformation中的信息,但我想要所有这些

之前我在模型CompaniesBranchesDepartmentsJobsEmployes.php中有这个

    public function company()
{
    return $this->hasOne(Company::class, 'id', 'company_id');
}

public function branch()
{
    return $this->hasOne(Branch::class, 'id', 'branch_id');
}

public function department()
{
    return $this->hasOne(Department::class, 'id', 'department_id');
}

public function job()
{
    return $this->hasOne(Job::class, 'id', 'job_id');
}

public function employee()
{
    return $this->hasOne(Employe::class, 'id', 'employee_id');
}

而在控制器中

    public function getAllInformation()
{
    $items = CompaniesBranchesDepartmentsJobsEmployes::with('company', 'branch', 'department', 'job', 'employee')->limit(10)->get();
    $inventory =
        [
            'items' => $items,
            'total' => count($items)
        ];
    return $inventory;
}

这给了我一个Json的所有信息,并且很好,但我想使用数据透视功能,因为是使用表数据透视工作的laravel的正确方法,我需要为var $ items中的所有信息创建一个数组,或者什么,任何帮助谢谢:D

php laravel
1个回答
0
投票

您可以在模型中定义$ with array。

class Company extends Model {
    $with = [
      'company',
      'branch',
       ...etc
    ];
}

而不仅仅是打电话

Company:limit(1)->get();
© www.soinside.com 2019 - 2024. All rights reserved.