Laravel Общая ошибка: 1364 Поле 'user_id' не имеет значения по умолчанию - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь создать опцию загрузки файла для пользователя. У меня есть таблица пользователей, и я создал новую таблицу 'документы' и добавил user_id в качестве внешнего ключа.

Когда я пытаюсь загрузить файл, я получаю эту ошибку:

"SQLSTATE [HY000]: Общая ошибка: 1364 Поле 'user_id' не имеет значения по умолчанию (SQL: вставить в documents (title, file, uuid, updated_at, created_at) значения (мой документ, сделайте c .pdf, 6c229500-7430-11ea-92c8-05ffc2487316, 2020- 04-01 15:49:50, 2020-04-01 15:49:50)) "

Это моя функция магазина:

public function store(Request $request)
    {
        $document = $request->all();
        $document['user_id'] = User::where('id',auth()->user()->id)->first();
        $document['uuid'] = (string)Uuid::generate();
        if ($request->hasFile('file')) {
            $document['file'] = $request->file->getClientOriginalName();
            $request->file->storeAs('documents', $document['file']);
        }
        Document::create($document);
        return redirect()->route('documents.index');
    }

Это форма:

                        <form action="{{ route('documents.store') }}" method="POST" enctype="multipart/form-data">
                        @csrf

                        Title:
                        <br>
                        <input type="text" name="title" class="form-control">

                        <br>

                        File:
                        <br>
                        <input type="file" name="file">

                        <br><br>

                        <input type="submit" value=" Upload document " class="btn btn-primary">

                    </form>

Есть идеи, как это исправить?

1 Ответ

4 голосов
/ 01 апреля 2020

Use Auth;
public function store(Request $request)
    {
        $document = $request->all();
        $document['user_id'] = Auth::user()->id;
        $document['uuid'] = (string)Uuid::generate();
        if ($request->hasFile('file')) {
            $document['file'] = $request->file->getClientOriginalName();
            $request->file->storeAs('documents', $document['file']);
        }
        Document::create($document);
        return redirect()->route('documents.index');
    }
...