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

时间:2018-09-05 18:51:40

标签: php laravel

我希望有人对此有所帮助,考虑到,我有一个数据透视表,其中包含哪些字段,这些字段仅是其他表的ID(公司,分支机构,部门,工作,雇员)

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

当我只查询一个我想使用withPivot()的注册时,我想访问所有信息,但是我不知道需要做什么,我已经在Model.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中的信息,但我要全部

在我在Model 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

1 个答案:

答案 0 :(得分:0)

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

示例

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

不仅仅是打电话给

Company:limit(1)->get();