Laravel 获取与注册关联的发票号
我想获取与注册id关联的发票号。因此我有以下代码:Laravel 获取与注册关联的发票号,laravel,Laravel,我想获取与注册id关联的发票号。因此我有以下代码: $user = Auth::user(); $registration = $user->registrations()-> with(["invoice"])->where("id", $regID)->first(); 但它不起作用,你知道为什么吗 dd($registration)显示: Registration {#342 ▼ #relations: array:1 [▼ "invoi
$user = Auth::user();
$registration = $user->registrations()->
with(["invoice"])->where("id", $regID)->first();
但它不起作用,你知道为什么吗
dd($registration)
显示:
Registration {#342 ▼
#relations: array:1 [▼
"invoice" => Invoice {#353 ▼
#attributes: array:5 [▼
"id" => 1
"invoice_number" => 0125
"registration_id" => 1
"updated_at" => null
]
#original: array:5 [▶]
}
]
}
"Y"
“dd($registration->invoice);
”显示:
dd($registration->invoice->invoice\u number)
显示“试图获取非对象的属性”
注册模式:
public function invoice()
{
return $this->hasOne('App\Invoice');
}
public function invoiceRow()
{
return $this->hasOne('App\Invoice');
}
发票型号:
class Invoice extends Model
{
public function registration()
{
return $this->belongsTo('App\Registration');
}
}
您与registrations
表中的invoice
列和模型中的invoice
关系名称不匹配。只需要更改发票关系名称
注册模式:
public function invoice()
{
return $this->hasOne('App\Invoice');
}
public function invoiceRow()
{
return $this->hasOne('App\Invoice');
}
这将工作,当你有注册id,然后你可以这样做
$registration = Registration::with('invoiceRow')->where("id", $regID)->first();
dd($registration->invoiceRow->invoice_number)
是否可以添加有问题的注册模型类别代码?是否确定用户将只有一张发票?用户与发票/注册的关系如何。谢谢,用户与发票没有任何关系,仅与注册有关。在用户模型中有“public function registrations(){return$this->hasMany('App\Registration','User\u that_do_Registration');}”。您可以尝试$Registration=$User->registrations()->load('invoice')->where('id',$regID)->first()吗代码>谢谢,就像它显示为“调用未定义的方法Illumb\Database\Query\Builder::load()”。谢谢,但在“dd($registration->invoice->invoice_number);”中显示为“尝试获取非对象的属性”。您是否用$regID
检查了注册表,是否分配了发票?注册表中有一列“发票”,如果是“Y”,则表示usre需要发票,“N”表示用户不需要发票。发票表中有“registration\u id”列,用于将发票编号与注册id关联。该字段没有任何区别,您只需检查发票表是否有$regID
值?假设您有$regID=2,那么发票表应该有注册号为2的记录。关于您的问题,您与invoice
列和invoice
关系名称不匹配。只需要更改发票关系名称。让我改变答案