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
x
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;