Laravel在哪里建立关系

雅可比

我正在做一个Laravel应用程序来管理事件。话务员和事件之间具有belongsToMany关系。话务员有多个事件,反之亦然。枢轴列有一个额外的字段,称为uuid,类似于事件的票证ID。我需要验证活动参与者的入口。因此,话务员会使用uuid数据透视表的扫描QR码

所以我有这个功能

public function validateTicket(Request $request, $ticket) {
    $event = Event::fromTicket($ticket);
    \Log::info($event);
    return new EventResource($event);
}

静态方法fromTicket是:

public static function fromTicket($ticket) {
    return static::whereHas('attendants', function($q) use ($ticket) {
        $q->where('uuid', $ticket);
    })->first();
}

问题是我也需要这种关系,这是因为我需要注册话务员的出入时间,并且这种出入可能发生很多次。

whereHas查询期间是否也有办法返回关系

提前致谢。

先生

否,因为它需要原始模型关系才能获取数据透视表,因此请担心没有一个与原始模型非常接近的解决方案。而是包括所有服务员并在包含中执行条件,只有您需要的服务员会在场。

public static function fromTicket($ticket) {
    return static::whereHas('attendants',
        function($query) use ($ticket) {
            $query->where('uuid', $ticket);
        })->with(['attendants' => function ($query) use ($ticket) {
            $query->where('uuid', $ticket);
        }])->first();
}

这将包括服务员,但只有一个具有正确票证的服务员,因此现在您可以进行操作$event->attendants->first(),这是两个仍然非常优化但不是最佳的查询,这是您描述问题的最简单的解决方案。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel搜索关系在哪里

来自分类Dev

Laravel雄辩的查询在哪里喜欢关系?

来自分类Dev

Laravel雄辩的一对多关系在哪里陈述

来自分类Dev

Laravel ManyToMany关系在哪里保存项目总计?

来自分类Dev

Laravel雄辩的一对多关系在哪里陈述

来自分类Dev

Laravel:试图建立关系

来自分类Dev

无法建立Laravel关系

来自分类Dev

包关系存储在哪里?

来自分类Dev

包关系存储在哪里?

来自分类Dev

Laravel:在哪里排序

来自分类Dev

Laravel LeftJoin在哪里

来自分类Dev

Laravel LeftJoin在哪里

来自分类Dev

教义查询的建立条件在哪里

来自分类Dev

与雄辩的Laravel建立hasMany关系

来自分类Dev

Laravel同时建立种子关系

来自分类Dev

使它认识这种关系的错误在哪里?

来自分类Dev

Laravel或在哪里使用

来自分类Dev

Laravel / Eloquent:hasManThrough在哪里

来自分类Dev

Laravel哪里有多态关系

来自分类Dev

Laravel哪里有多态关系

来自分类Dev

Laravel“哪里”查询关系表

来自分类Dev

Xampp不使用关系,而Wamp使用关系Laravel建立关系

来自分类Dev

Laravel 5.1 Query Builder在哪里和在哪里

来自分类Dev

Laravel:在哪里和在哪里之间的区别

来自分类Dev

Laravel 5在哪里链接或在哪里

来自分类Dev

laravel如何与自己建立hasOne关系?

来自分类Dev

试图在Laravel建立关系时遇到的问题

来自分类Dev

与关系建立此清单的最佳方式laravel

来自分类Dev

在laravel 5.2中建立多态关系