![](/img/trans.png)
[英]Laravel Argument 1 passed to HasOneOrMany::save() must be an instance of Model array given
[英]Laravel 8: Argument 2 passed must be an instance of
我正在与 Laravel 8 合作开发一个在线论坛。 我制作了这个表格来更新用户的答案:
<form action="{{ route('update.answer', [$anss->id, $que->id]) }}" method="POST">
@csrf
<textarea name="answer" id="answer" class="form-control" rows="7">{{ $ans->answer }}</textarea>
@error('answer')
<div class="text-red-500 mt-2 text-sm">
{{ $message }}
</div>
@enderror
<button type="submit" class="text-blue-500 BJadidBold">ثبت تفییرات</button>
</form>
这是这样做的路线:
Route::post('questions/{ans}/{que}' , [QuestionController::class, 'updateAnswer'])->name('update.answer');
这也是QuestionController
的方法:
public function updateAnswer(Answer $anss, Question $que)
{
$validate_data = Validator::make(request()->all(),[
'answer' => 'required'
])->validated();
$answer = Answer::findOrFail($anss);
$answer->update($validate_data);
return view('questions.question',[
'show' => $que,
]);
}
但现在的问题是,每当我提交表单以更新答案时,我都会收到以下错误:
传递给 App\Http\Controllers\QuestionController::updateAnswer() 的参数 2 必须是 App\Models\Question 的实例,给定字符串,在 F:\xampp\htdocs\gooyanet\root\vendor\laravel\framework\src 中调用\Illuminate\Routing\Controller.php 在第 54 行
我不知道为什么会出现此错误,因为如您所见,我已将$que->id
at Action 传递给Question $que
作为udpateAnswer()
方法的第二个参数。
那么您对此有何想法? 我该如何解决这个问题?
如果您与我分享您的想法或建议,我将不胜感激。
谢谢...
这是因为您在 controller 中的变量称为$anss
而在您的路线中称为ans
检查我在另一个主题中给出的这个答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.