mysql - 如何更新多个相同的外键值,这是laravel中的文件类型
问题描述
我在项目和文件表之间有如下关系:
class Project extends Model
{
public function files()
{
return $this->hasMany(File::class);
}
}
class File extends Model
{
public function project()
{
return $this->belongsTo(Project::class);
}
}
我想在外部 project_id 相同的文件表中更新,并且可以一起更新单行或多行。但是使用 first() 时只更新第一个文件,如下代码:
$files = $request->filenames;
if($files) {
foreach ($files as $u_file) {
$name=$u_file->getClientOriginalName();
$u_file->move(public_path().'/images/', $name);
$project_file =File::where('project_id', $id)->first();
$project_file->filename = $name;
$project->files()->save($project_file);
}
}
通过使用 get() 而不是 first() 得到如下错误:
SplFileInfo::getSize(): C:\xampp\tmp\php28ED.tmp 的统计失败
解决方案
打开您的php.ini
文件并更新upload_max_size
. 确保upload_max_filesize 大于文件大小(上传的文件)。
尺寸变化时应遵循以下条件:
- post_max_size must be larger than upload_max_filesize
- memory_limit should be larger than post_max_size
推荐阅读
- javascript - 当用户向下滚动时,如何使向下箭头消失?
- java - Servlet 处理旧的 SQL 数据
- c# - C如何断言这个结构不等于零?
- ms-access - 如何进行部分复制/粘贴记录集
- git - 如何从 git 存储库中取消链接分支?
- amazon-web-services - s3 上的 TensorFlow/Tensorboard
- python - 在 whois 包中扩展 Python 模块
- java - 尝试使用 SharedPreferences 存储和检索应用程序数据,但它没有返回所需的数据
- android - 仅在片段可见时如何调用函数
- javascript - encodeURIComponent 和内容类型:'charset: utf-8'