Eloquent 关系 hasMany 使用循环
Eloquent Relationships hasMany use loop
我有一个数据库,其中包含一个用户的多个地址记录。当我在 foreach 路径中执行“pluck()”和“join()”时,我得到了结果。但是当我在像 hasOne 这样的结构中键入 $user->getAddress->address 时,我得到了我想要的结果。简而言之,我可以 return hasMany 中的循环更实际吗?
按照我的代码:
user
Table
id | name | lastname |
--- -------------- ----------
1 | Rahuel | lastnameRahuel
2 | Dalton Miller | lastnameDalton
adress
Table
user_id | address
-------- ---------
1 | 740 Brown Greens Suite
1 | 9906 Cleora Wall Apt.
2 | 53977 Kip Center Apt
UserModel
public function getAddress()
{
return $this->hasMany(Address::class);
}
Controller
$users = User::with('getAddress')->get();
foreach ($users as $user){
echo $user->name;
echo $user->lastname;
echo $user->getAdress->pluck('address')->join(',');
}
您可以使用 Collection
的 implode
方法使其看起来不那么冗长。
echo $user->getAdress->implode('address', ',');
我有一个数据库,其中包含一个用户的多个地址记录。当我在 foreach 路径中执行“pluck()”和“join()”时,我得到了结果。但是当我在像 hasOne 这样的结构中键入 $user->getAddress->address 时,我得到了我想要的结果。简而言之,我可以 return hasMany 中的循环更实际吗?
按照我的代码:
user
Table
id | name | lastname |
--- -------------- ----------
1 | Rahuel | lastnameRahuel
2 | Dalton Miller | lastnameDalton
adress
Table
user_id | address
-------- ---------
1 | 740 Brown Greens Suite
1 | 9906 Cleora Wall Apt.
2 | 53977 Kip Center Apt
UserModel
public function getAddress()
{
return $this->hasMany(Address::class);
}
Controller
$users = User::with('getAddress')->get();
foreach ($users as $user){
echo $user->name;
echo $user->lastname;
echo $user->getAdress->pluck('address')->join(',');
}
您可以使用 Collection
的 implode
方法使其看起来不那么冗长。
echo $user->getAdress->implode('address', ',');