Php 如何使用Laravel eloquent在多个表中存储数据
我有一个有多种媒体的模块。我想用eloquent将数据存储在三个表中。我的桌子如下 用户、驾驶会话、媒体 ,DrivingSession模型包含用户id,媒体模型具有驾驶会话id。我想将特定用户创建的驾驶会话图像/视频存储在媒体模型中。我的模型函数为 Users.phpPhp 如何使用Laravel eloquent在多个表中存储数据,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个有多种媒体的模块。我想用eloquent将数据存储在三个表中。我的桌子如下 用户、驾驶会话、媒体 ,DrivingSession模型包含用户id,媒体模型具有驾驶会话id。我想将特定用户创建的驾驶会话图像/视频存储在媒体模型中。我的模型函数为 Users.php 公共功能驱动会话(){ 返回$this->hasmany(DrivingSession::class); } DrivingSession.php 公共函数用户(){ 返回$this->belongtomany(用户::类);
公共功能驱动会话(){
返回$this->hasmany(DrivingSession::class);
}
DrivingSession.php
公共函数用户(){
返回$this->belongtomany(用户::类);
}
公共职能媒体(){
返回$this->hasMany(媒体::类);
}
Media.php
公共功能驱动会话(){
返回$this->belongtomany(DrivingSession::class);
}
我想在DrivingSessions表中存储用户id以供参考,并将附加的介质存储到Medias表中。如何做到这一点?如果每个驾驶会话只有一个用户,那么它应该是一种归属关系
public function user()
{
return $this->belongsTo(User::class);
}
如果您已经使用用户id设置了db表,那么您应该能够运行
$user->drivingsessions()->save($driving_session);
这将自动填充驱动会话中的user_id列
你也会在媒体上做类似的事情,我认为你更可能想要的是属于自己,而不是属于别人
$driving_session->medias()->save($media);
如果您正在创建资源,则可以使用下面的
$driving_session = $user->drivingsessions()->create([
'title' => $request->input('title'),
]);
然后,您可以使用捕获的资源更新媒体
$driving_session->medias()->create([
'media' => $request->input('media');
])
?? <代码>布隆戈曼尼??拼写错误我已经编辑了这个。你可以使用attach()使它变成这样$user=user::find(1)$drvsess=新驱动会话()$drvess->titel=$request->title$用户->驱动会话()->保存($drvess)$媒体=新媒体()$drvsess->media()->save($request->media);是这样的吗???是的,但是如果媒体来自上传,那么你必须先处理文件,如果是链接,那么它应该是这样工作的。如果有一条捷径,我会修改我的答案。没问题@Muhammed,别忘了把答案标为正确。