【发布时间】:2021-04-28 23:29:03
【问题描述】:
我正在使用 Laravel 8 建立一个论坛,在这个论坛中,为了发布问题的答案,我制作了这个表单:
<form action="{{ route('questions.answers', ['question' => $show->id, 'asker' => $show->user->name]) }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="mb-4">
<textarea name="answer" id="answer" class="form-control BSinaBold" rows="7" placeholder="Write down answer"></textarea
@error('answer')
<div class="text-red-500 mt-2 text-sm">
{{ $message }}
</div>
@enderror
</div>
<br />
<button type="submit" class="btn btn-primary">Send</button>
</form>
并将其也添加到web.php:
Route::post('questions/{question}{asker}/answer' , [QuestionController::class, 'postAnswer'])->name('questions.answers');
最后,这里是postAnswer 方法:
public function postAnswer($id,$name) {
$validate_data = Validator::make(request()->all(),[
'answer' => 'required',
])->validated();
$answer = Answer::create([
'answer' => $validate_data['answer'],
'user_id' => auth()->user()->id,
'question_id' => $id,
]);
$name->notify(new RepliedToThread($id));
return back();
}
所以这里的$id 变量表示问题ID,$name 是提出问题的人的用户名。
但现在我以某种方式得到了这个错误:
照亮\数据库\查询异常
SQLSTATE[01000]:警告:1265 行 1 的列“question_id”的数据被截断(SQL:插入answers(answer,user_id,question_id,updated_at,created_at)值(ETC )
那么这里出了什么问题?我该如何解决这个问题?
如果你知道怎么做,请告诉我,我非常感谢你们的任何想法或建议......
提前致谢。
answers表结构:
【问题讨论】:
-
您的数据库列是什么数据类型?
-
@Aless55 我刚刚加了一张照片
-
你已经尝试过了?
public function postAnswer($request, $id, $name)。我认为您的 $request 在您的 $id 变量中