gpt4 book ai didi

php - 如何更新数据库中的json字段laravel?

转载 作者:行者123 更新时间:2023-11-29 15:59:27 24 4
gpt4 key购买 nike

我正在创建带有上传文件的项目 CRUD,使用 json_encode 在数据库中上传文件。我想问如何编辑/更新数据库laravel中的json字段?

我尝试使用isset($data)? json_encode($data): $sid->file_uploads 在公共(public)函数 update() 中,但是当我更新时该代码可以替换以前的文件。

    $sid = Sid::find($id);

if($request->file('file_uploads'))
{
foreach($request->file('file_uploads') as $file)
{
$name = $file->getClientOriginalName();
$path = 'public/file/'.$sid->employee_name;
$file->move($path, $name);
$data[] = $name;
}
}

$sid->employee_sid = $request->employee_sid;
$sid->employee_npk = $request->employee_npk;
$sid->employee_name = $request->employee_name;
$sid->file_uploads = isset($data)? json_encode($data): $sid->file_uploads;
$sid->save();

我期望结果是文件,当我上传时将在数据库中添加文件。例如,我上传 5 个文件,但当我创建时,我只上传 2 个文件,当我想编辑时,我添加 3 个文件,数据库中的总计文件为 5 个。

最佳答案

这个可以解决,新版本的php不支持运行时创建var,或者检查是否有文件导致错误。

$sid = Sid::find($id);
$data = [];

if($request->file('file_uploads'))
{
foreach($request->file('file_uploads') as $file)
{
$name = $file->getClientOriginalName();
$path = 'public/file/'.$sid->employee_name;
$file->move($path, $name);
$data[] = $name;
}
}

$sid->employee_sid = $request->employee_sid;
$sid->employee_npk = $request->employee_npk;
$sid->employee_name = $request->employee_name;
$sid->file_uploads = count($data)? json_encode(array_merge(json_decode($sid->file_uploads, true),$data)): $sid->file_uploads;
$sid->save();

关于php - 如何更新数据库中的json字段laravel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56300710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com