Laravel 关系 HasMany
Laravel relationship HasMany
我保留了属于一个用户的多个地址记录。但是当我用 dd 写入时,我无法访问其他 table 的数据。
按照我的代码:
user
Table
id | name | country |
--- -------------- ----------
7 | Mr. Lenny Bins| Belgium
2 | Dalton Miller | Swaziland
address
Table
user_id | address
-------- ---------
7 | 740 Brown Greens Suite
7 | 9906 Cleora Wall Apt.
2 | 53977 Kip Center Apt
UserModel
public function getAddress()
{
return $this->hasMany(Address::class);
}
UserController
$users = User::where('id' ,7)->with('getAddress')->get();
dd($users->toArray());
// The output of this is below
dd($users->getAddress->toArray());
当我这样尝试时出现错误。
属性 [getAddress] 在此集合实例上不存在。
$users = User::with('getAddress')->where('id' ,7)->first();
dd($用户);
首先,您使用的是 return 收集的 get,接下来您将获取所有用户及其地址。
$users = User::where('id' ,7)->with('getAddress')->get();
您可以使用 first()
而不是 get()
,因为您只找到一个用户
$user = User::where('id' ,7)->with('getAddress')->first();
如果您只想使用该用户的地址
dd($user->getAddress)
或者如果你只想以数组的形式使用
dd($user->getAddress->toArray())
用户模型
public function getAddress()
{
return $this->hasMany('App\Address');
}
获取用户
$users = \App\User::with('getAddress')->where('id' ,7)->get();
迭代并读取数据
foreach ($users as $user) {
echo '<pre>' , var_dump($user->getAddress()->first()['address']) , '</pre>';
}
我保留了属于一个用户的多个地址记录。但是当我用 dd 写入时,我无法访问其他 table 的数据。
按照我的代码:
user
Table
id | name | country |
--- -------------- ----------
7 | Mr. Lenny Bins| Belgium
2 | Dalton Miller | Swaziland
address
Table
user_id | address
-------- ---------
7 | 740 Brown Greens Suite
7 | 9906 Cleora Wall Apt.
2 | 53977 Kip Center Apt
UserModel
public function getAddress()
{
return $this->hasMany(Address::class);
}
UserController
$users = User::where('id' ,7)->with('getAddress')->get();
dd($users->toArray());
// The output of this is below
dd($users->getAddress->toArray());
当我这样尝试时出现错误。
属性 [getAddress] 在此集合实例上不存在。
$users = User::with('getAddress')->where('id' ,7)->first();
dd($用户);
首先,您使用的是 return 收集的 get,接下来您将获取所有用户及其地址。
$users = User::where('id' ,7)->with('getAddress')->get();
您可以使用 first()
而不是 get()
,因为您只找到一个用户
$user = User::where('id' ,7)->with('getAddress')->first();
如果您只想使用该用户的地址
dd($user->getAddress)
或者如果你只想以数组的形式使用
dd($user->getAddress->toArray())
用户模型
public function getAddress()
{
return $this->hasMany('App\Address');
}
获取用户
$users = \App\User::with('getAddress')->where('id' ,7)->get();
迭代并读取数据
foreach ($users as $user) {
echo '<pre>' , var_dump($user->getAddress()->first()['address']) , '</pre>';
}