
Laravel
使用 Laravel 4 时,我们经常会遇到需要保存多态关系的记录的情况。然而,在尝试保存这些记录时,有时会遇到一个错误信息,即“未定义的方法 newQuery()”。本文将介绍如何解决这个问题,并提供实际案例代码。
错误信息:未定义的方法 newQuery()当我们尝试使用 Laravel 4 的多态关系功能时,有时会遇到一个错误信息,即“未定义的方法 newQuery()”。这个错误通常发生在我们尝试将多态关系保存到数据库时。解决这个问题的方法是使用morphTo 方法的 getResults 函数来替代 newQuery 方法。解决方法:使用 getResults 替代 newQuery在 Laravel 4 中,多态关系使用 morphTo 方法来定义。然而,在保存多态关系到数据库时,我们需要用到 newQuery 方法来创建一个新的查询构造器。而在某些情况下,newQuery 方法可能会出现未定义的错误。为了解决这个问题,我们可以使用 getResults 方法来替代 newQuery 方法。getResults 方法将返回一个查询构造器的实例,我们可以在此基础上继续进行查询操作。让我们来看一个具体的案例,以更好地理解如何解决这个问题。案例代码假设我们有两个模型:User 和 Comment。User 模型有一个多态关系字段 commentable,用于存储评论的相关信息。在保存评论时,我们希望能够正确地保存多态关系到数据库中。phpclass User extends Eloquent { public function comments() { return $this->morphMany('Comment', 'commentable'); }}class Comment extends Eloquent { public function commentable() { return $this->morphTo(); }}在保存评论时,我们可以使用以下代码:php$user = User::find(1);$comment = new Comment;$comment->content = 'This is a comment.';$user->comments()->save($comment);在上面的例子中,我们使用
save 方法将评论保存到 User 模型中。通过使用 getResults 方法,我们可以正确地保存多态关系到数据库,并避免了“未定义的方法 newQuery()”错误。在使用 Laravel 4 保存多态关系的记录时,有时会遇到一个错误信息,即“未定义的方法 newQuery()”。为了解决这个问题,我们可以使用 morphTo 方法的 getResults 函数来替代 newQuery 方法。通过这种方式,我们可以正确地保存多态关系到数据库,并避免了错误的发生。希望本文对你在使用 Laravel 4 保存多态关系的记录时有所帮助!Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号