- 刚刚在看代码的时候突然想到一个之前没有想明白的问题,但是,就在刚刚,一瞬间豁然开朗,哈哈哈,代码如下 :
public function index(Request $request)
{
return view('user_addresses.index', [
'addresses' => $request->user()->addresses,
]);
}
- 在控制器中有这么一个方法,对于后面的
$request->user()->addresses
部分是这样的:- 首先通过
$request->user()
来拿到当前登录对象的模型,由于在用户模型中已经定义了addresses
方法和address
模型关联,所以此时如果想要拿到登录对象的地址的话,就可以直接$request->user()->addresses
- 之前的疑问是如果想要拿到地址的话,为什么不直接请求
address
呢,刚刚想明白,因为要的是当前登录对象的地址啊
- 首先通过
- 这里还有一个小问题 :
- 为什么那个
$request->user()->addresses
的addresses
后面不需要加括号呢? - 在
User
模型中定义的时候就是个方法啊
public function addresses() { return $this->hasMany(UserAddress::class); }
- 来看下文档 :
- 因为这里是把
addresses
当做一个动态属性来访问的,所以不用加
- 为什么那个