Laravel 5.2 模型用户->发票->发票详情

Laravel 5.2 Model User->Invoice->InvoiceDetails

我有3个模型,我不知道我需要为每个模型写哪个关系

用户 |发票 |发票详情

一个用户可以有很多发票,一张发票只能由一个用户制作。 所以在用户 Class 中我写:

public function invoice(){
    return $this->hasMany('App\Invoice');
}

在发票里面 Class 我写:

public function user(){
    return $this->belongsTo('App\User');
}

这^正确吗?

现在,一张 Invoice 有一个 InvoiceDetail 这是否意味着每张 Invoice 在 table invoice_details 中只有一行?

就是不知道每个model里面写什么,怎么连接? 我做了一个小模式只是为了展示它应该是什么样的:

所以问题是,在每个模型中编写哪些函数来声明它们之间的正确连接?

到目前为止你写的很好,它正确地(几乎)将用户链接到发票。唯一的问题是您需要将 owner_id 重命名为 user_id,或者指定它应该使用 owner_id 字段。

用户class

// Note that the function should be plural as it's for many
public function invoices(){
    return $this->hasMany('App\Invoice', 'owner_id', 'ID');
}

发票class

public function user(){
    return $this->belongsTo('App\User', 'ID', 'owener_id');
}

那么你只需要定义与InvoiceDetails的关系

发票class

public function invoiceDetails()
{
    return $this->hasMany('App\InvoiceDetails');
}

发票详情class

public function invoice()
{
    return $this->belongsTo('App\Invoice');
}