请问当有外键约束时只有这一种创建资源的方法吗
$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()
$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会自动过滤