Laravel 获取与注册关联的发票号

Laravel 获取与注册关联的发票号,laravel,Laravel,我想获取与注册id关联的发票号。因此我有以下代码: $user = Auth::user(); $registration = $user->registrations()-> with(["invoice"])->where("id", $regID)->first(); 但它不起作用,你知道为什么吗 dd($registration)显示: Registration {#342 ▼ #relations: array:1 [▼ "invoi

我想获取与注册id关联的发票号。因此我有以下代码:

  $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
关系名称不匹配。只需要更改发票关系名称。让我改变答案