SQLSTATE[23000]: Integrity constraint violation: 1048 Column ‘nama’ cannot be null

<?php

namespace App\Http\Controllers;

use App\Models\file_upload;
use Illuminate\Http\Request;


class fileUploadController extends Controller
{

    public function create()
    {
        return view('fileUpload');
    }

    public function store(Request $request)
    {

        // return $request->file('image')->store('post-file');

        // $validasi = $request->validate([
        //     'image' =>  'file'
        // ]);

        // Post::create($validasi);

        $tambahFile = new file_upload;
        $tambahFile->nama = $request->input('nama');

        if ($request->hasfile('image')) {

            $file = $request->file('image');
            $extension = $file->getClientOriginalExtension();
            $filename = time() . '.' . $extension;
            $file->move('public/post-file', $filename);
            $tambahFile->image = $filename;
        }
        // $file->image = $filename;
        $tambahFile->save();

        return redirect()->back()->with('message', 'file berhasil di upload');
    }
}

help me, i don’t know this problem

  • Please make sure the nama column is added to the fillable property array or unguard it please read this laravel.com/docs/4.2/eloquent#mass-assignment.

    – 




  • 1

    It’s also best practice to name your models with PascalCase when it contains more than one word. eg: FileUpload instead of file_upload . Another thing you can upload the file directly if you do not really want specific names to your uploaded files, eg: $tambahFile->image = $request->file('image')->store('public/post-file').

    – 




Leave a Comment