请问当有外键约束时只有这一种创建资源的方法吗
$request->user()->addresses()->create($request->only([
'province',
'city',
'district',
'address',
'zip',
'contact_name',
'contact_phone',
]));
请问这段代码的逻辑是怎么实现的,由于是动态的定位不到源码。
$request->user()为什么这段可以这么写?具体实现代码在哪里?user()->addresses()为什么不是获取当前列表?它返回的是什么类?有其他方法可以获得表之间的关系吗?addresses()->create()使用UserAddress::create()无效,为什么这种方法可以。$request->only()这个在UserAddress中不是规定了$fillable吗
,为什么还要only()
关于 LearnKu
$request->user()为什么这段可以这么写?具体实现代码在哪里? 答:在Request中,会有通过搜索调用者发现
这个
$app['auth]实际上就是注册的
AuthManager.通过调查发现所以
$request->user()实际上调用的是 'auth()->guard($guard)->user()'user()->addresses()为什么不是获取当前列表?它返回的是什么类?有其他方法可以获得表之间的关系吗?addresses()->create()使用 UserAddress::create() 无效,为什么这种方法可以。$request->only()这个在 UserAddress 中不是规定了 $fillable 吗 ,为什么还要 only() 答:通过查看user得知返回一个
Illuminate\Database\Eloquent\Relations这个relation基类中会注入相关类的builder当
create()时可以看出返回的是一个新的模型并->save()
当new model的时候
所以
$request->only()没有必要,因为model的$fillable会自动过滤