对模型属性使用hasMany关系

时间:2018-12-12 08:33:58

标签: laravel laravel-5 eloquent

我有以下模型:

class User extends Model {

    public function addresses() {
        return $this->hasMany('Addresses');
    }

    public function billAddress() {
        return $this->addresses()->where('id','=', $this->idBill);
    }
}

以下查询将导致一个空集合。

\App\User::has('billAddress')->get();

但是,用户的任何实例都有一个billAddress

在hasMany关系中是否完全不可能使用$this->attribute?还是有其他方法可以实现这一目标?

1 个答案:

答案 0 :(得分:1)

\App\User::has('billAddress')->get();导致一个空集合,因为\App\User不是一个特定的用户,而是实际的 User Model

假设您的数据库中已有一个用户,并且在用户模型中定义了$idBill,则可以得到如下的“ billAdresses”关系:

$user = User::find(1); // just an example, but it has to be a User Model
$billAddresses = $user->billAddress->get(); // the result your are looking for

foreach ($billAdresses as $billAddress) {
    // your code
}