我的数据库file_types
,post_files
和private function findOrCreateFileType($fileType)
{
return $fileType = FileType::firstOrCreate([
'name' => $fileType,
'slug' => str_slug($fileType, '-')
]);
}
中有3个表格,当我首先将文件类型保存到我的数据库时:
$file = File::updateOrCreate([
'cms_id' => $inventoryRemoteId,
'file_name' => $file->post_name,
'file_path' => $file->guid,
], [
'file_type_id' => $fileType->id,
'file_extension' => pathinfo($file->guid)['extension'],
'file_size' => $fileInfo['Content-Length']
]);
PostFile::updateOrCreate([
'file_id' => $file->id,
'post_id' => $contentId,
],[
'file_type_id' => $fileType->id,
]);
然后我将文件保存到DB并更新'content_files'表,如下所示:
attachment
我遇到的问题是,当我保存的帖子中包含2个不同类型的2个文件时,例如feature image
和file_types
则会正确保存到{ {1}}表:
ID | name
--------------------
1 | feature_image
--------------------
2 | attachment
但是,当我保存到files
表时,它没有正确保存,因为它为该帖子的每个文件提供了最后一个类型:
ID | file_type_id | name
--------------------
1 | 1 | feature_image file name
--------------------
2 | 1 | attachment file name
因此,由于我首先保存feature-image
然后attachments
,因此出于某种原因更新了file_type_id
表格中feature-image
的{{1}},以及files
表中。我做错了什么,我该如何解决这个问题呢?