Laravel 的新手,試圖讓用戶能夠創建帖子。當我單擊提交時,我收到此錯誤:SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: posts.title (SQL: insert into "posts" ("user_id", "updated_at", "created_at") values (1, 2020-01-23 04:19:50, 2020-01-23 04:19:50))我見過與此類似的問題,但沒有一個得到很好的答案。這是我的模型:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Post extends Model{ protected $gaurded = []; protected $fillable = ['title', 'thought', 'image', 'url']; public function user(){ return $this->belongsTo(User::class); }}創建.blade.php:@extends('layouts.app')@section('content')<body> <div class="container"> <form action="/p" enctype="multipart/form-data" method="post"> @csrf <div class="row"> <div class="col-8 offset-2"> <h1>New Post:</h1> <div class="form-group row"> <label for="title" class="col-md-4 col-form-label">Title</label> <input id="title" name="title" type="text" class="form-control @error('title') is-invalid @enderror" title="title" value="{{ old('title') }}" required autocomplete="title" autofocus> </div> </div> </div> <div class="row"> <div class="col-8 offset-2"> <div class="form-group row"> <label for="thoughts" class="col-md-4 col-form-label">Thoughts</label> <textarea type="text" class="form-control @error('thoughts') is-invalid @enderror" id="thoughts" name="thoughts"></textarea> @error('file') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> </div>
2 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
您缺少用于標題輸入的 name="title"
//... <input id="title" name="title" type="text" class="form-control @error('title') is-invalid @enderror" title="title" value="{{ old('title') }}" required autocomplete="title" autofocus>
更新
您還缺少驗證規則
檢查文檔
//...
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'thought' => 'required',
'image' => 'required|image',
'url' => 'required|url'
]);
auth()->user()->posts()->create($validatedData);
- 2 回答
- 0 關注
- 337 瀏覽