Php Laravel 5.2车型用户->;发票->;发票详情
我有3个模型,我不知道我需要为每个模型编写哪种关系 用户|发票|发票明细 一个用户可以有多张发票,一张发票只能由一个用户开具。 所以在用户类中,我写:Php Laravel 5.2车型用户->;发票->;发票详情,php,relationship,laravel-5.2,Php,Relationship,Laravel 5.2,我有3个模型,我不知道我需要为每个模型编写哪种关系 用户|发票|发票明细 一个用户可以有多张发票,一张发票只能由一个用户开具。 所以在用户类中,我写: public function invoice(){ return $this->hasMany('App\Invoice'); } public function user(){ return $this->belongsTo('App\User'); } 在发票类别中,我写道: public function
public function invoice(){
return $this->hasMany('App\Invoice');
}
public function user(){
return $this->belongsTo('App\User');
}
在发票类别中,我写道:
public function invoice(){
return $this->hasMany('App\Invoice');
}
public function user(){
return $this->belongsTo('App\User');
}
这对吗
现在,一张发票有一个InvoiceDetail,这是否意味着每张发票在表Invoice\u details中只有一行
我只是不知道在每个模型中写什么,如何连接它们?
我制作了一个小模式,只是为了展示它应该是什么样子:
所以问题是,在每个模型中编写哪些函数来声明它们之间的正确连接?到目前为止您编写的内容很好,它可以将用户正确地(几乎)链接到发票。唯一的问题是您需要将
owner\u id
重命名为user\u id
,或者指定它应该使用owner\u 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');
}
public function invoiceDetails()
{
return $this->hasMany('App\InvoiceDetails');
}
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
发票类别
// 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');
}
public function invoiceDetails()
{
return $this->hasMany('App\InvoiceDetails');
}
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
然后您只需要定义与InvoiceDetails的关系
发票类别
// 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');
}
public function invoiceDetails()
{
return $this->hasMany('App\InvoiceDetails');
}
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
发票明细类
// 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');
}
public function invoiceDetails()
{
return $this->hasMany('App\InvoiceDetails');
}
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
因此,我需要专门设置“owner\u id”“id”?是的,因为默认情况下,幼虫将尝试使用表名,在本例中,
user\u id
,它还使用小写字母表示id
。这是一个很好的实践,使用拉威尔所期望的。