关于createOrUpdateAddress方法中的一些小疑惑
来源:9-14 用户收货地址-----模型新增和更新
稳稳地幸福
2017-06-23
在此方法中,我们利用getCurrentUid方法在token中拿到uid 然后利用usermodel 查询用户信息,如果有则更新,如果没有 则新建 七月老师讲的利用模型进行更新 $user->address()->save() 这个是新建,因为user与user_address是关联的 在user模型中,定义了address关联user_address 这个可以理解,然后如果存在 $user->address->save() 不加address这个括号 当时老师并未讲清楚其中的区别 我现在也想的不是很清楚 希望老师能指点下 而且在前面取$userAddress的时候 也是用$user->address,并未加()
写回答
1回答
-
这个说真的,文档里也没讲,我是自己试出来的,记得当时是有一种情况(加括号或者不加括号会出错,具体有点儿忘记了)。这个加了括号就是调用方法,你可以看一下如果把address当做方法来调用,他返回的是什么?是一个HasOne模型关系类;而如果不加(),这应该是读取器的应用。可以在Model基类里找到读取器的定义。这个当时没讲也是因为,要讲这个,需要把源码挖的很深,而这个里面的为什么意义对大多数同学并不大。没有什么为什么,作者就是这么定义的,我个人认为这个设计不好,但确实可以这么用。如果有兴趣的,可以按照我说的这个思路去看下HasOne等模型关系类和Model基类里的读取器
112017-06-24
相似问题