Как добавить картинку в базу данных с помощью laravel - PullRequest
0 голосов
/ 15 апреля 2020

Я создаю Laravel 7 проект и хочу добавить / просмотреть изображения в / из MySQL базы данных. Имена столбцов изображений: icon_lg и icon_sm

Это моя функция создания в Controller. Я попробовал ее двумя способами, как я видел в некоторых уроках:

public function create(Request $request)
    {
        $object = $this->objectModel::create([
                    'name' => $request->name,
                    'icon_sm' => $request->icon_sm
        ]);
        if($request->hasFile('icon_lg')) {
                $images = explode(',', $request->hasFile('icon_lg'));
                foreach($images as $image)
                    $filename = rand().'.'.$image->getClientOriginalExtension();
                    $filePath = public_path("images");
                    $image->move($filePath, $filename);
                    return Image::create([
                      'icon_lg' => $filename,
                      //'item_id' => $created->id,
                    ]);
            }

        if ($request->save == 'browse')
            return redirect()->route("{$this->objectName}");
        elseif ($request->save == 'edit')
            return redirect()->route("{$this->objectName}.edit", ['id' => $object]);
        elseif ($request->save == 'add')
            return redirect()->route("{$this->objectName}.add");
        else
            return redirect($request->previous_url);
    }

Он ничего не делает с icon_lg, он вставляет в него нулевое значение. И это имеет дело с icon_sm как String.

This is the database table.

1 Ответ

0 голосов
/ 15 апреля 2020

я думаю, что вы должны установить проверку hasfile внутри foreach l oop вроде

            $images = explode(',', $request->hasFile('icon_lg'));
            foreach($images as $image)
                if($request->hasFile('icon_lg')) {
                  $filename = rand().'.'.$image->getClientOriginalExtension();
                  $filePath = public_path("images");
                  $image->move($filePath, $filename);
                  return Image::create([
                    'icon_lg' => $filename,
                    //'item_id' => $created->id,
                  ]);
                }

просто сначала протестируйте его без проверки, он должен работать

...