数组到字符串的转换(laravel 7)



我想在Laravel中制作一个测验应用程序,但我有一些错误:array to string conversion

这是我的控制器:

public function validateForm1($request)
{
return $this->validate($request, [
'quiz_id'        => 'required',
'question'       => 'required',
'options'        => 'required|array',
'options.*'      => 'required|string',
'correct_answer' => 'required',
]);
}
public function buat(Request $request)
{
$data = $this->validateForm1($request);
$question = (new Pertanyaan)->storeQuestion($data);
$Answer =  (new Jawaban)->storeAnswer($data,$question);    

return redirect()->back()->with('message','Pertanyaan berhasil disimpan');        
}

这是我的问题模型:

public function storeQuestion($data)
{           
return Pertanyaan::create($data);
}

这是我的答案模型:

public function storeAnswer($data, $question)
{
foreach ($data['options'] as $key => $option) {

$is_correct = false;

if ($key == $data['correct_answer']) {
$is_correct = true;
}
$answer = Jawaban::create([
'question_id' => $question->id,
'answer'      => $option,
'is_correct'  => $is_correct,
]);
}
}

你必须这样使用

return $this->validate($request, [
'quiz_id'        => 'required',
'question'       => 'required',
'options'        => 'required|array',
'correct_answer' => 'required',
]);

然后您的错误会自动删除array to string conversion

我在模型中使用受保护时遇到的此错误,因此我将其更改为可填充并且它可以正常工作。 抱歉,如果我没有捕获我的所有模型。

阅读了有关特殊变量雄辩的文档后,我明白了。 这是我读到的链接,但用印度尼西亚语。对不起我的英语不好先生。我在这里新

https://id-laravel.com/post/mengenal-eloquent-variable-spesial/

当我遇到此错误时,它是由我的模型中的错误引起的。我将表名格式化为数组,例如protected $table = ['log'];.更正此问题以protected $table = 'log';解决了问题。

最新更新