建立HasManyThrough关系

时间:2019-02-01 07:38:12

标签: laravel

我通过这种方式连接了3个模型:

OrganizationApplicationInstance→(枢轴)→Invoice

是否知道如何从本组织获取所有发票?

2 个答案:

答案 0 :(得分:0)

如果您在模型上定义了relationships,则可以使用$organization->application_instance->invoice

答案 1 :(得分:-3)

这是我对这个问题的解决方案:

    public function invoices() {

    $indexes = \DB::select('SELECT invoices.id FROM invoices,application_instance_invoice,application_instances
    WHERE invoices.id=application_instance_invoice.invoice_id
    AND application_instances.id=application_instance_invoice.application_instance_id
    AND application_instances.organization_id=:id', ['id' => $this->id]);

    $indexArray = array();

    foreach($indexes as $index) {
        array_push($indexArray,$index->id);
    }

    return Invoice::whereIn('id', $indexArray)->orderBy('created_at');
}

我很确定有更简单的方法可以做到这一点,但这确实有用。