Saj*_*mad 1 php arrays laravel laravel-4 laravel-3
我正在开发一个QA应用程序,我需要根据需要动态地添加问题的多个答案.为此,我发送一个带有问题和答案的对象.
question={
'question_text':'what is your name',
'answers':[
{'answer_text':'some answer','isCorrect':'1'},
{'answer_text':'some answer','isCorrect':'1'},
{'answer_text':'some answer'} // answer may or may not have isCorrect key
]
}
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有两个表或迁移1用于问题,1用于回答.答案表有三个字段 question_id
,answer_text' and
isCorrect'.question_id
是答案表中问题的外键.
存储我正在做的对象
$question_text=Input::get('question_text');
$answers=Input::get('answers');
$question=new Question;
$question->question_text=$question_text;
$question->save();
foreach($answers as $ans){
$answer=new Answer;
$answer->question_id=$question->id;
$answer->answer_text=$ans->answer_text;
if($answer->isCorrect){
$answer->is_correct=$ans->isCorrect;
}
else{
$answer->is_correct=0;
}
$answer->save();
}
Run Code Online (Sandbox Code Playgroud)
但是迭代时会出现错误
`production.ERROR: exception 'ErrorException' with message 'Trying to get property of non-object'`
Run Code Online (Sandbox Code Playgroud)
我在这做什么错.我是第一次使用PHP.我试图像Javascript或Python方式迭代它.告诉我如何获取答案数组对象的值并存储它们.
您似乎没有正确引用数组变量.这应该工作:
foreach($answers as $ans){
$answer=new Answer;
$answer->question_id=$question->id;
$answer->answer_text=$ans['answer_text'];
$answer->is_correct = isset($ans['isCorrect']);
$answer->save();
}
Run Code Online (Sandbox Code Playgroud)
ps我不确定forEach
- 我很惊讶它有效 - 但你应该重命名它foreach
以确认正常标准
归档时间: |
|
查看次数: |
5339 次 |
最近记录: |