尝试动态保存到数据库

时间:2019-12-13 19:28:46

标签: laravel

我正在尝试将客户端的原始文件名保存到我的存储和数据库中。我可以将其保存到存储中。我一直在极度困难的时间内尝试将其正确地放入数据库。我不知道如何解决第二到最后一行代码,以便foreach循环正常工作。

$files = array();
$files = $request->allFiles();
$folder = $id;
if (count($files) > 0) {
    foreach ($files as $file) {
        //if files should be stored in public drive, change 'local' to 'public'

        $filename = $file->getClientOriginalName();
        Storage::disk('local')->putFileAs($folder, $file, $file->getClientOriginalName());
        $plansubmission-> current_plan_year_claims_data_file_1 = $filename;
        $plansubmission->save();
    }
}

1 个答案:

答案 0 :(得分:1)

假设allFiles为您提供了一个以输入名称作为键的关联数组,并且您的数据库字段与这些字段名称匹配,则可以迭代该数组并将该键用作模型上的属性名称:< / p>

foreach ($files as $name => $file) {
    $filename = $file->getClientOriginalName();
    Storage::disk('local')->putFileAs($folder, $file, $filename);
    $plansubmission->$name = $filename;
}

$plansubmission->save();

明智的选择是确保输入名称是您期望的3个名称之一,以便仅设置一个实际存在的字段作为表中的字段,而不是一些随机名称(如果用户要以某种方式更改表单。)