Skip to content
Advertisement

Laravel sql table error when i try to upload

This is the error i get

SQLSTATE[HY000]: General error: 1 table posts has no column named caption (SQL: insert into “posts” (“caption”, “image”, “user_id”, “updated_at”, “created_at”) values (Caption,

Why is that

post table code

Schema::create('posts', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedBigInteger('user_id');
        $table->string('caption');
        $table->string('image');
        $table->timestamps();

        $table->index('user_id');

blade.php code

<input id="caption" 
                                type="text" 
                                class="form-control @error('caption') is-invalid @enderror" 
                                name="caption"
                                value="{{ old('caption') }}" 
                                autocomplete="caption" autofocus>

and i have my PostsController.php as

public function store()
    {
        $data = request()->validate([
            'caption' => 'required',
            'image' => ['required', 'image'],
        ]);

        auth()->user()->posts()->create($data);    


        dd(request()->all());
    }

Why is the error coming up?

Advertisement

Answer

As you are trying to store data into the post table you can do simple like:

$data = request()->validate([
    'caption' => 'required',
    'image' => ['required', 'image']        
]);

$data['user_id'] = Auth::id();

$post = Post::create($data);

Also, you need to import Post model to insert data into post table as below:

namespace AppHttpControllers;

use AppPost;
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement