php - Eloquent - 插入相关模型
问题描述
在这个问题中,保存相关模型的公认答案是:
public function store(Request $request)
{
$player->name = $request->input('name');
$player->lastname = $request->input('lastname');
$player->stats = [
'position' => $request->input('stats.position'),
'profile' => $request->input('stats.profile'),
];
$player->save();
return response()->json($player);
}
每当我尝试这个时,我都会收到一个错误:
未找到列:1054“字段列表”中的未知列“统计”
如果我将统计数据添加到受保护的集合中,它当然永远不会出现。
在我的播放器对象上,我有这个:
public function stats(): HasMany
{
return $this->hasMany(Stat::class);
}
那么我怎样才能让我的统计数据进入,但 elqoquent 不尝试在插入中使用“统计数据”作为列名?
解决方案
使用该save()
方法,您可以创建一个新Player
对象并将其保存,然后创建一个新Stat
对象并将其保存为Player
相关stats()
:
$player = new Player
$player->name = $request->input('name');
$player->lastname = $request->input('lastname');
$player->save();
$stat = new Stat([
'position' => $request->input('stats.position'),
'profile' => $request->input('stats.profile'),
]);
$player->stats()->save($stat);
推荐阅读
- laravel - 此路由不支持 GET 方法。支持的方法:POST。当我想输入数据时
- javascript - 如何在 WebGL 的剪辑空间坐标中找到当前输出像素位置?
- excel - VBA 错误 438 对象在尝试从网站抓取网页时不支持此属性或方法
- angular - 无法在 peerjs 上关闭对等点之间的连接
- php - 在 laravel-8 中获取最后一个 id 表单数据库
- c# - 如何使用cefsharp在选项卡控件中打开链接标签?
- java - Treap Add 功能的实现
- c# - 我如何将直播流发送到抽搐
- spring - 如何在 elasticsearch 中创建文档以保存数据并进行搜索?
- flutter - _ceil() & _round() 与 Flutter 中的 lodash JavaScript 实用程序库相同