为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
缥缈止盈 2021-07-05 12:54:40
我正在使用 json_encode 为数据库中的上传文件创建带有上传文件的项目 CRUD。我想问一下如何编辑/更新数据库laravel中的json字段?我尝试使用 isset($data)?json_encode($data): $sid->file_uploads in public function 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。
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

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


$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();


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信