Загрузить несколько файлов в laravel в 1 таблице базы данных - PullRequest
0 голосов
/ 11 июля 2019

Я хочу сделать загрузку нескольких файлов, используя laravel.я уже поместил вложение 1 , несколько на мой взгляд. Я использую только одну таблицу в моей базе данных, которая вызывает уведомления со всеми подробностями внутри.ниже моя таблица базы данных

Я уже пробовал для каждого, но он продолжает говорить, что

Вызов функции-члена getClientOriginalExtension() в массиве

iпоиск по другому путем создания еще одного вызова таблицы в базе данных и ссылки с моей таблицей уведомлений, приведенный ниже код может загрузить только один файл

public function store(Request $request)
{
    $notification=new Notification();
    $notification->title = $request->input('title');
    $notification->description = $request->input('description');
    $notification->link = $request->input('link');
    $notification->department = $request->input('department');

    if($request->hasfile('attachment')){ 
        $attachments=$request->file('attachment');
        foreach($attachments as $attachment){
        $extension=$attachments->getClientOriginalExtension();
        $attachmentsname=time().'.'.$extension;
        $attachment->move('uploads/attachments/',$attachmentsname);
        $notification->attachment = $attachmentsname; 
        }
    }
    $notification->save();

    return redirect('/notifications')->with('notifications',$notification);

}

1 Ответ

0 голосов
/ 11 июля 2019

Вызов функции-члена getClientOriginalExtension () при изменении массива,

$attachments->getClientOriginalExtension() to 

$attachment->getClientOriginalExtension(),

это сохранит только одно вложение, потому что в вашей базе данных у вас есть один столбец, $notification->attachment, поэтому после его зацикливания, он сохраняет только последнее значение цикла,

. Вы должны создать новую сводную таблицу, назвав ее уведомлением_attachment, и использовать красноречивое отношение , затем зациклить, чтобы сохранить вложения в новой таблице,

если у вас есть проблема с сохранением вложений в таблице привязок,

   public function store(Request $request)
{
    $notification=new Notification();
    $notification->title = $request->input('title');
    $notification->description = $request->input('description');
    $notification->link = $request->input('link');
    $notification->department = $request->input('department');
    $notification->save();
if($request->hasfile('attachment')){ 
                $attachments=$request->file('attachment');
                foreach($attachments as $attachment)
        {
                $extension=$attachment->getClientOriginalExtension();
                $attachmentsname=time().'.'.$extension;
                $attachment->move('uploads/attachments/',$attachmentsname);
                $notification->attachment = $attachmentsname; 
               $attachment = new attachments();
        $attachment->notification_id = $notification->id,
        $attachment->path = $attachmentsname,

                }
            }
    return redirect('/notifications')->with('notifications',$notification);

}

ваш код должен выглядеть следующим образом, если у вас есть таблица вложений и модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...