Laravel eloquent "belongsTo" / "hasOne"
Laravel eloquent "belongsTo" / "hasOne"
我给了一个 existing 数据库,其中有两个 tables:
customers (address_id)
addresses
此外,customers 中的每个客户都有一个 AddressID。通常,我会假设每个地址都有一个客户的 id,但这里客户有地址 id。
现在我正在寻找一个模型函数来从客户那里检索地址,以便在 blade 模板中使用类似 {{ $customer->address }}
的内容:
例如Customer.php
public function address() {
return $this->belongsTo('Address', 'CustomerID', 'AddressID');
}
问:如何获取客户的相关地址?
// 编辑:这是一个现有的 table 数据,我目前无法更新。
我的解决方法是:
$customer->address = Address::find($customer->AddressID);
在客户模型中创建这样的函数
public function address() {
return $this->hasOne('Address', 'CustomerID', 'AddressID');
}
其中 Address
是地址模型的名称 CustomerID
是 customers
中的主键(我建议只使用 id
)并且 AddressID
是对Address
个客户 table。所以,现在您可以使用 {{ $customer->address }}
来检索客户的地址。
您的 belongsTo
调用中的参数有点错误。试试这个:
$this->belongsTo('Address', 'AddressID');
^
foreign key
你可以省略第三个参数,只要 Address
模型上的 $primaryKey
属性 被设置(或者它是常规的 id
)
我给了一个 existing 数据库,其中有两个 tables:
customers (address_id)
addresses
此外,customers 中的每个客户都有一个 AddressID。通常,我会假设每个地址都有一个客户的 id,但这里客户有地址 id。
现在我正在寻找一个模型函数来从客户那里检索地址,以便在 blade 模板中使用类似 {{ $customer->address }}
的内容:
例如Customer.php
public function address() {
return $this->belongsTo('Address', 'CustomerID', 'AddressID');
}
问:如何获取客户的相关地址?
// 编辑:这是一个现有的 table 数据,我目前无法更新。
我的解决方法是:
$customer->address = Address::find($customer->AddressID);
在客户模型中创建这样的函数
public function address() {
return $this->hasOne('Address', 'CustomerID', 'AddressID');
}
其中 Address
是地址模型的名称 CustomerID
是 customers
中的主键(我建议只使用 id
)并且 AddressID
是对Address
个客户 table。所以,现在您可以使用 {{ $customer->address }}
来检索客户的地址。
您的 belongsTo
调用中的参数有点错误。试试这个:
$this->belongsTo('Address', 'AddressID');
^
foreign key
你可以省略第三个参数,只要 Address
模型上的 $primaryKey
属性 被设置(或者它是常规的 id
)