요구 사항에 따라 질문에 여러 답변을 동적으로 추가해야하는 QA 앱을 만들고 있습니다. 이것에 대한 나는 질문과 답변을 가지고있는 물건을 보내고있다.객체 배열을 반복하고 laravel에서 값 가져 오기 PHP
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
]
}
서버 측에는 질문 용으로 1 개, 대답 용으로 1 개씩 2 개의 테이블 또는 마이그레이션이 있습니다. 응답 테이블에는 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();
}
이다 저장할 그러나 반복하면서 내가 여기서 뭐하는 거지 무슨 오류
`production.ERROR: exception 'ErrorException' with message 'Trying to get property of non-object'`
이있다. 나는 PHP로 처음으로 일하고있다. Javascript 또는 Python 방식으로 반복하려고합니다. Answer array 객체의 값을 가져와 저장할 수있는 방법을 알려주십시오.
'$ ans.answer_text; '의 의미는 무엇입니까? '.' PHP의 텍스트 연결 연산자입니다. 이것은 Java가 아닙니다. 아마도'->'를 원할 것입니다. – LSerni
또한 속성이 존재하는지 잘 모르는 경우에는'$ answer-> isCorrect'를 사용하지 말아야합니다. 반드시'isset()'를 사용하여 확인하거나'is_correct'를 기반으로 할당하십시오 :'$ answer-> isCorrect = isset ($ ans-> is_correct)? (int) $ ans-> is_correct : 0;' – LSerni
그건 PHP의 -> 표기법입니다. 나는 그것을 바로 잡았다. 고맙습니다 Iserni –