拉拉维尔雄辩的“属于”/“有一”


Laravel eloquent "belongsTo" / "hasOne"

>我给出了一个包含两个表的现有数据库:

customers (address_id)
addresses

此外,客户中的每个客户都有一个地址 ID。通常,我会假设每个地址都有一个客户的 ID,但这里的客户有地址 ID。

现在,我正在寻找一个模型函数来从客户处检索地址,以便在刀片模板中使用类似于{{ $customer->address }}的内容:

例如客户.php

public function address() {
    return $this->belongsTo('Address', 'CustomerID', 'AddressID');
}

问:如何获取客户的相关地址?

编辑:这是一个现有表,其中包含我目前无法更新的数据。

我的解决方法是:

$customer->address = Address::find($customer->AddressID);

belongsTo调用中的参数有点错误。试试这个:

$this->belongsTo('Address', 'AddressID');
                                 ^
                            foreign key

只要设置了Address模型上的 $primaryKey 属性(或者它是常规id),就可以省略第三个参数

在客户模型中创建这样的函数

public function address() {
    return $this->hasOne('Address', 'CustomerID', 'AddressID');
}

其中Address是地址模型的名称CustomerIDcustomers中的主键(我建议只使用id),AddressID引用客户表中的Address。因此,现在您可以使用{{ $customer->address }}来检索客户的地址。

相关文章: