私はpolls、poll_questions、poll_choicesの3つのテーブルを持っています。彼らの関係は世論調査であり、多くのpoll_questionsとpoll_questionsには多くのpoll_choicesがあります。挿入しようとしていますが、poll_choices()のBadMethodCallExceptionエラーが発生します。BadMethodCallException Laravel
ポールモデル:
public function poll_questions() {
return $this->hasMany(PollQuestion::class);
}
投票質問モデル:
public function polls() {
return $this->belongsTo(Poll::class, 'poll_id');
}
public function poll_choices() {
return $this->hasMany(PollChoice::class);
}
投票の選択肢モデル:
public function poll_questions() {
return $this->belongsTo(PollQuestion::class, 'poll_question_id');
}
ここでは私のコントローラである:
public function store(Request $request) {
$rules = [
'title' => 'required',
'questions' => 'required|poll_questions',
];
$this->validate($request, $rules);
$newPoll = Poll::create(request()->all());
$questions = $request->input('questions');
for ($i = 0; $i < count($questions); $i++) {
$poll_question = new PollQuestion();
$poll_question->input_type = $questions[$i]["input_type"];
$poll_question->question = $questions[$i]["question"];
$newPoll->poll_questions()->save($poll_question);
if ($questions[$i]["input_type"] === '0') {
for ($j = 0; $j < count($questions[$i]["choices"]); $j++) {
$poll_choices = new PollChoice();
$poll_choices->choice = $questions[$i]["choices"][$j];
$newPoll->poll_questions()->poll_choices()->save($poll_choices);
}
}
}
return $this->showOne($newPoll);
}
私は、この行でエラーが出ます:$newPoll->poll_questions()->poll_choices()->save($poll_choices);
はまた、私が試した:$newPoll->poll_questions->poll_choices()->save($poll_choices);
私は世論調査とpoll_question完璧を追加することができます。しかし、投票選択を追加しようとすると、エラーが発生します。 poll_questionsのpoll_choicesメソッドにアクセスできません。
この問題を解決するにはどうすればよいですか?
Laravel 5.4
フル・エラー・ログ:あなたが持っている未定義のメソッドへ
BadMethodCallExceptionコール を照らし\データベース\クエリー\ビルダー:: poll_choices()
クール、ありがとう。 – Nevermore