记录laravel中的模型关联的一个小问题

  • 刚刚在看代码的时候突然想到一个之前没有想明白的问题,但是,就在刚刚,一瞬间豁然开朗,哈哈哈,代码如下 :
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()->addressesaddresses后面不需要加括号呢?
    • User模型中定义的时候就是个方法啊
    public function addresses()
    {
        return $this->hasMany(UserAddress::class);
    }
    
    • 来看下文档 :
    • 在这里插入图片描述
    • 因为这里是把addresses当做一个动态属性来访问的,所以不用加
发布了145 篇原创文章 · 获赞 38 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/yehuaner33/article/details/105474801