Laravel雄辩"属于" /" hasOne"

时间:2015-01-17 10:17:50

标签: php laravel model eloquent

我已经为现有数据库提供了两个表:

customers (address_id)
addresses

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

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

e.g。 Customer.php

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

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

//编辑:它是一个现有的表,包含我当前无法更新的数据。

我的工作是:

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

2 个答案:

答案 0 :(得分:3)

belongsTo来电中的参数有点不对劲。试试这个:

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

只要设置了$primaryKey模型上的Address属性(或者它是传统的id

,就可以省略第3个参数

答案 1 :(得分:1)

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

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

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