我有3个模型,我不知道我需要为每个模型编写哪种关系
用户|发票| InvoiceDetails
用户可以拥有多个发票,只有一个用户可以发出一个发票。 所以在用户类我写道:
public function invoice(){
return $this->hasMany('App\Invoice');
}
并在Invoice Class里面写道:
public function user(){
return $this->belongsTo('App\User');
}
这是正确的吗?
现在,一个Invoice有一个InvoiceDetail,这意味着每个Invoice中只有一行表invoice_details?
我只是不知道在每个模型中写什么,如何连接它们? 我做了一个小模式只是为了表明它应该是什么样的:
所以问题是,在每个模型中写入哪些函数来声明它们之间的正确连接?
答案 0 :(得分:2)
到目前为止您所写的内容很好,它可以正确地将用户与发票联系起来(差不多)。您唯一需要将owner_id
重命名为user_id
,或指定它应使用owner_id
字段。
用户类
// Note that the function should be plural as it's for many
public function invoices(){
return $this->hasMany('App\Invoice', 'owner_id', 'ID');
}
发票类
public function user(){
return $this->belongsTo('App\User', 'ID', 'owener_id');
}
然后你只需要定义与InvoiceDetails的关系
发票类
public function invoiceDetails()
{
return $this->hasMany('App\InvoiceDetails');
}
InvoiceDetails类
public function invoice()
{
return $this->belongsTo('App\Invoice');
}