【问题标题】:Laravel 8: SQLSTATE[HY000]: General error: 1364 Field 'answer' doesn't have a default valueLaravel 8:SQLSTATE[HY000]:一般错误:1364 字段“答案”没有默认值
【发布时间】:2021-06-05 16:34:04
【问题描述】:

我正在使用 Laravel 8 开发我的在线论坛项目。而在这个论坛里,基本上用户都可以回答问题。

所以在控制器上,我把它放在这里是为了发布答案:

public function PostAnswer($id)
    {
        $validate_data = Validator::make(request()->all(),[
            'answer' => 'required',
        ])->validated();

        $answer = Answer::create([
            'answer' => $validate_data['answer'],
            'user_id' => auth()->user()->id,
            'question_id' => $id,
        ]);

        return back();
    }

请注意,$id 变量是问题 ID。

但现在的问题是,每当我尝试添加答案时,都会收到此错误:

Illuminate\Database\QueryException SQLSTATE[HY000]:一般错误:
1364 字段“答案”没有默认值

这背后的表格在这里:

<form action="{{ route('questions.answers', $show->id) }}" method="POST">
   @csrf
   <textarea name="answer" id="answer" class="form-control" rows="7"></textarea
   @error('answer')
     <div class="text-red-500 mt-2 text-sm">
        {{ $message }}
     </div>
   @enderror
   <button type="submit" class="btn btn-primary">Submit</button>
</form>

这里也是answers表的迁移:

public function up()
    {
        Schema::create('answers', function (Blueprint $table) {
            $table->id();
            $table->text('answer');
            $table->foreignId('user_id')->constrained()->onDelete('cascade');
            $table->foreignId('question_id')->constrained()->onDelete('cascade');
            $table->timestamps();
        });
    }

如果你想查看模型之间的关系,这里是:

Question.php:

public function answers()
    {
        return $this->hasMany(Answer::class);
    }

用户.php:

public function answers()
    {
        return $this->hasMany(Answer::class);
    }

那么这里出了什么问题,我该如何解决这个问题?

如果您能就此分享您的想法或建议,我将不胜感激......

提前致谢。

【问题讨论】:

    标签: php laravel laravel-8


    【解决方案1】:

    在您的答案模型中,确保您的 $fillable 属性具有正确的属性:

    class Answer extends Model
    {
     protected $fillable = ['answer','user_id','question_id'];
    ....
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 2021-09-10
      • 2020-05-25
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多