当前位置: 首页 > 知识库问答 >
问题:

在Eloquent中使用with()方法的Laravel错误

施令雪
2023-03-14

我试图在Laravel Eloquent ORM中使用with()方法调用,但是得到了以下错误。

class DashboardController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:api');
    }

    public function formIndex(Request $request)
    {
        $id = auth()->user()->id;
        $item = Groupe::find($id)->with(
            [
                'etudiants' => function (Builder $query) {
                    $query->select('id');
                }
            ]
        )->first();

        return $item;
    }
}
class Groupe extends Authenticatable implements JWTSubject
{
    public function etudiants()
    {
        return $this->hasMany('App\Etudiant');
    }
}

共有1个答案

竺承望
2023-03-14

错误来自您对$Query变量的类型提示,正如错误消息所说,传入的对象是一个关系,而不是原始查询生成器。只需移除类型提示。另外::find()执行一个查询,所以您正在执行2个查询,请使用下面的查询

Groupe::where('id', $id)->with(['etudiants' => function ($query) {
        $query->select('id');
    }])->first();

此外,您不需要使用回调语法来仅快速加载某些列,回调语法用于对返回的记录进行对比。试试这个吧。

Groupe::where('id', $id)->with('etudiants:id,name,email')->first();

 类似资料:
  • 问题内容: 我有两个表,和。一个可以有许多,一个只能属于一个。 在我的模型中,我有一个关系… 在我的模型中,我有一个关系… 现在,我想使用来连接这两个表,但是想要第二个表中的特定列。我知道我可以使用查询生成器,但我不想这样做。 当我在模型中写… 它运行以下查询… 但是我想要的是… 当我使用… 它仅返回第一个表中的列。我想使用第二个表中的特定列。我怎样才能做到这一点? 问题答案: 好吧,我找到了解决

  • 有两个表 表 user id name 1 tom 2 jerry 表 friend id user_id support_id 1 1 1 2 1 2 表 support id name can_fly 1 bird 1 2 dog 0 三个 Model 我想实现如下 sql,意义为 获取 tom 所有会飞的朋友 关系 我这样写,但后边的不会写了,求解。

  • 我有以下型号 订单(id,编号) 细节(id、item_id、计数、user_id等) 项目(id,名称) 猫(id,名称) 用户(id, name)在我的情况下不重要 每个订单都有很多细节 每个细节都属于项目 每个项目都属于一个类别 每个细节都属于用户 我写了这行代码 要获得这样的响应: 但我还需要在item对象中获取category对象,这已经是关系,item属于category我知道我可以进

  • 本文向大家介绍在Laravel中使用MongoDB的方法示例,包括了在Laravel中使用MongoDB的方法示例的使用技巧和注意事项,需要的朋友参考一下 MongoDB实用场景 产品用户访问日志,点击埋点统计信息 业务系统环境参数配置信息 业务系统运行时日志,如laravel.log,nginx.log 使用Homebrew在macoOS安装MongoDB PHP Driver 在macOS中,

  • 我第一次寻找所谓的 Laravel 框架的时候,我的其中一个目标就是要找:利用最简单的操作数据库的方法。后来目标就停在了 Eloquent ORM 上。 今天说一说 Eloquent ORM 的一些不易被发现和使用的方法。 1. 递增和递减函数 平时这么写: $article = Article::find($article_id); $article->read_count++; $articl

  • 我无法将结果附加到查询中。我正在使用页面上的类别筛选结果,并尝试添加分页。当用户单击类别时,只应显示与类别相关的产品,在分页时,我希望保留所选类别。我得到了这个错误: Facade\Ignition\Exceptions\ViewException调用未定义的方法Illumb\Database\Eloquent\Builder::appends()(视图:D:\Xampp\htdocs\Proje