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');
}
我有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');
}