【问题标题】:How to store data without multiple uploads "if i don't have a file want to upload"?如何在没有多次上传的情况下存储数据“如果我没有要上传的文件”?
【发布时间】:2019-10-10 15:12:36
【问题描述】:

当我想保存一个新数据时遇到问题,我也不想上传文件,但我必须在我的公共函数存储中编写多个上传代码。我想在打开编辑表单并上传时添加文件。我该怎么办?

我尝试将验证设置为设置,但是当我提交错误时未定义变量:数据。

public function store(Request $request)
{
    $request->validate([
        'employee_sid' => 'required',
        'employee_npk' => 'required',
        'employee_name' => 'required',
        'file_uploads' => 'nullable',
        'file_uploads.*' => 'file|image|mimes:pdf,jpg,jpeg,png',
    ]);

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

    $sid = new Sid;
        $sid->employee_sid          = $request->employee_sid;
        $sid->employee_npk          = $request->employee_npk;
        $sid->employee_name         = $request->employee_name;
        $sid->file_uploads          = json_encode($data);
        $sid->save();

我希望当我在没有 file_uploads 的情况下提交该数据时。但是错误

Undefined variable: data.

【问题讨论】:

    标签: php laravel laravel-5.7 laravel-5.8


    【解决方案1】:

    您在 if 中定义 $data 变量,因此如果条件为假,则不会定义 $data 变量。一种可能的解决方法是:

    $sid = new Sid;
        $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): null;
        $sid->save();
    

    【讨论】:

    • 太棒了!如果它有助于解决您的问题,请随时upvote it or accept it ;)
    • 我什么时候想编辑那个文件呢?前任。我创建用户并在我想编辑时上传文件我只是编辑用户数据而不编辑文件。我该怎么办 ?我尝试使用 isset($data)? json_encode($data):null 当我更新时。文件在数据库中被更改为空值
    • 嗯,那应该在更新功能中,对吧?你可以试试$sid->file_uploads = isset($data)? json_encode($data): $sid->file_uploads;
    • 这会将数据库中的字段替换为新数据或保持原样
    • 感谢先生,它有效。你太有帮助了。太感谢了。我可以问其他问题吗?数据库中的字段如何更新。前任。我想上传 5 个文件,但是当我创建时,我只上传 2 个文件,当我想编辑时,我添加 3 个文件,数据库中的总文件为 5。能做到吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2013-01-13
    • 2010-10-06
    相关资源
    最近更新 更多