BadMethodCallException Laravel

不再

我有 3 个表,分别是 polls、poll_questions 和 poll_choices。他们的关系是 polls 有很多 poll_questions 和 poll_questions 有很多 poll_choices。我正在尝试插入,但我收到一个错误 BadMethodCallException for poll_choices()。

民意调查模型:

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 和 poll_question。但是当我尝试添加投票选项时,它给出了一个错误。我无法访问 poll_questions 的 poll_choices 方法。

我该如何解决这个问题?

Laravel 5.4

完整错误日志:

BadMethodCallException 调用未定义的方法 Illuminate\Database\Query\Builder::poll_choices()

不要惊慌

执行以下操作时,您已经保存了投票问题,并将其与投票相关联:

$newPoll->poll_questions()->save($poll_question);

所以剩下的就是保存问题的选择,你不需要再参与父投票了。所以在你的问题循环中,使用它而不是你所拥有的:

$poll_question->poll_choices()->save($poll_choices);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel Artisan迁移[BadMethodCallException]

来自分类Dev

Laravel Artisan迁移[BadMethodCallException]

来自分类Dev

BadMethodCallException 属于多个 Laravel 5.4

来自分类Dev

Laravel dusk 宏抛出的 BadMethodCallException

来自分类Dev

Laravel:BadMethodCallException方法[查找]不存在

来自分类Dev

Laravel:BadMethodCallException方法[存储]不存在

来自分类Dev

BadMethodCallException 方法 [插入] 不存在。在 Laravel

来自分类Dev

我通过MongoDB从Laravel护照获取BadMethodCallException“ Client :: confidential()”

来自分类Dev

与with()一起使用时的Laravel 5 BadMethodCallException

来自分类Dev

Laravel查询:Builder.php第2258行中的BadMethodCallException:

来自分类Dev

BadMethodCallException 解释?

来自分类Dev

Laravel BadMethodCallException运行作曲家更新时调用未定义的方法[package]

来自分类Dev

Builder.php中的BadMethodCallException:调用未定义的方法Laravel 5.0

来自分类Dev

Laravel 5.2 BadMethodCallException在Controller.php第107行:方法[保存]不存在

来自分类Dev

Laravel:尝试将帖子添加到数据库时出现 BadMethodCallException 错误

来自分类Dev

BadMethodCallException使用children_comments()

来自分类Dev

BadMethodCallException方法App \ Http \ Controllers \ TaskController :: destory不存在

来自分类Dev

BadMethodCallException调用未定义的方法App \ User :: map()

来自分类Dev

BadMethodCallException:方法照亮\路由\路由:: withoutMiddleware不存在

来自分类Dev

BadMethodCallException:调用未定义的方法App \ Models \ User :: getFirstMedia()

来自分类Dev

自定义HTML :: macro()给了我BadMethodCallException

来自分类Dev

{消息:“方法 addColumns 不存在。”,异常:“BadMethodCallException”,...}

来自分类Dev

BadMethodCallException 方法用户名不存在

来自分类Dev

BadMethodCallException 调用未定义的方法 App\Post::tags()

来自分类Dev

给所有用户的 Artisan 命令通知给出了 BadMethodCallException

来自分类Dev

BadMethodCallException: 方法 Illuminate\Routing\Route::get 不存在

来自分类Dev

BadMethodCallException,带有消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: toArray()”

来自分类Dev

出现消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()”的BadMethodCallException

来自分类Dev

BadMethodCallException 调用未定义的方法 Illuminate\Database\Query\Builder::searchable()

Related 相关文章

  1. 1

    Laravel Artisan迁移[BadMethodCallException]

  2. 2

    Laravel Artisan迁移[BadMethodCallException]

  3. 3

    BadMethodCallException 属于多个 Laravel 5.4

  4. 4

    Laravel dusk 宏抛出的 BadMethodCallException

  5. 5

    Laravel:BadMethodCallException方法[查找]不存在

  6. 6

    Laravel:BadMethodCallException方法[存储]不存在

  7. 7

    BadMethodCallException 方法 [插入] 不存在。在 Laravel

  8. 8

    我通过MongoDB从Laravel护照获取BadMethodCallException“ Client :: confidential()”

  9. 9

    与with()一起使用时的Laravel 5 BadMethodCallException

  10. 10

    Laravel查询:Builder.php第2258行中的BadMethodCallException:

  11. 11

    BadMethodCallException 解释?

  12. 12

    Laravel BadMethodCallException运行作曲家更新时调用未定义的方法[package]

  13. 13

    Builder.php中的BadMethodCallException:调用未定义的方法Laravel 5.0

  14. 14

    Laravel 5.2 BadMethodCallException在Controller.php第107行:方法[保存]不存在

  15. 15

    Laravel:尝试将帖子添加到数据库时出现 BadMethodCallException 错误

  16. 16

    BadMethodCallException使用children_comments()

  17. 17

    BadMethodCallException方法App \ Http \ Controllers \ TaskController :: destory不存在

  18. 18

    BadMethodCallException调用未定义的方法App \ User :: map()

  19. 19

    BadMethodCallException:方法照亮\路由\路由:: withoutMiddleware不存在

  20. 20

    BadMethodCallException:调用未定义的方法App \ Models \ User :: getFirstMedia()

  21. 21

    自定义HTML :: macro()给了我BadMethodCallException

  22. 22

    {消息:“方法 addColumns 不存在。”,异常:“BadMethodCallException”,...}

  23. 23

    BadMethodCallException 方法用户名不存在

  24. 24

    BadMethodCallException 调用未定义的方法 App\Post::tags()

  25. 25

    给所有用户的 Artisan 命令通知给出了 BadMethodCallException

  26. 26

    BadMethodCallException: 方法 Illuminate\Routing\Route::get 不存在

  27. 27

    BadMethodCallException,带有消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: toArray()”

  28. 28

    出现消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()”的BadMethodCallException

  29. 29

    BadMethodCallException 调用未定义的方法 Illuminate\Database\Query\Builder::searchable()

热门标签

归档