提问人:Iam-kelvin 提问时间:7/31/2021 更新时间:2/12/2022 访问量:1841
Laravel 8:未定义索引
Laravel 8: Undefined index
问:
我正在做一个问卷调查项目,我遇到了一个错误,说:
未定义索引:考试
当我尝试将响应存储到我的数据库时,就会发生这种情况。
这是我的控制器代码:
public function store(Math $math)
{
$data = request()->validate([
'responses.*.answer_id' => 'required',
'responses.*.question_id' => 'required'
]);
$exam = $math->exams()->create($data['exams']);
$exam->examanswers()->createMany($data['examanswers']);
return 'Thank You';
}
这是我的考试模型:
{
use HasFactory;
protected $fillable = ['exam'];
public function math()
{
return $this->belongsTo(Math::class);
}
public function examanswers()
{
return $this->hasMany(ExamAnswer::class);
}
}
问题模型:
{
use HasFactory;
protected $fillable = ['question'];
public function math()
{
return $this->belongsTo(Math::class);
}
public function answers()
{
return $this->hasMany(Answer::class);
}
}
数学模型:
{
use HasFactory;
protected $fillable = [
'user_id', 'title', 'purpose', 'exam'
];
public function user()
{
return $this->belongsTo(User::class);
}
public function questions()
{
return $this->hasMany(Question::class);
}
public function exams()
{
return $this->hasMany(Exam::class);
}
}
请帮我调查一下。
答:
1赞
matiaslauriti
7/31/2021
#1
request()->validate(RULES)
将返回一个数组,其中包含所有现有的 .它不会返回所有存在的数据,只是返回规则和当前的内容。rules' indexes
了解 $request->validate()
的工作原理。
例如:
如果您发送 、 和 ,但您的规则是:home = 'Address'
name = 'John'
email = 123
$data = $request->validate([
'home' => 'required',
'name' => 'required',
]);
然后,如果你想使用,你会有():$data
dd($data)
$data['home']
:Address
$data['name']
:John
但不会出现在 .email = 123
$data
评论
$data['exams']