我有一个用户模型和一个时间表模型.我正在try 使用Laravel中的关系,而不是进行联接.是否可以返回Shift Time=‘x’的所有轮班用户?我想返回在特定日期范围内轮班的所有用户.

$users = User::select('name','location','id AS user_id')->has('shift')>where('schedule.startTime', $start)->get();

这显然不起作用,因为日程模型中存在Start列.

在我的User Model岁中,我有:

public function shift() {
    return $this->hasMany('App\Models\Schedule');
}

在我的Schedule Model岁中,我有:

public function user()
{
    return $this->belongsTo('App\Models\User', 'user_id', 'id');
}

在我的时间表控制器中,我使用了以下有效的方法,但我需要通过WHERE子句缩小我的结果范围:

$users = User::select('name','location','id AS user_id')->has('shift')->get();

如有任何帮助,我们不胜感激.

推荐答案

看一看 eager loading

下面这样的内容应该能起到作用.

User::whereHas('schedule', function ($query) {
    return $query->where('startTime', $start);
})->get();

Php相关问答推荐

WooCommerce:有条件地更改特定区域的发货类别

msgraph-sdk-php v2如何传递skiptoken到request?

使用.htaccess将任何路由重定向到文件

如果WooCommerce中存在特定的运输方式,则隐藏其他运输方式

让所有具有相同名称的产品在WooCommerce中更改价格

删除了数组中的值,而不是多个数组

在WooCommerce获取所有具有全球产品属性品牌的简单产品

PHP 8.2 弃用日志(log)存储在 Laravel 10.22.0 中的哪里?

启用 WooCommerce 我的帐户付款方式,允许客户添加付款方式

为什么从一个页面到另一个页面都找不到 JQuery,因为它们使用相同的 twig 模板?

将 PHP 版本更改为 8.1,但 WordPress 认为我们正在使用版本 7.4?

单个产品页面 WooCommerce 订阅价格字符串的更改

如何在 Phpunit 的静态提供程序中创建测试双打?

使用现有的htaccess的PHP路由脚本

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

如何在PHP中对多个脚本调用进行排队?

保留 .htaccess 中的符号登录 URL

按前 3 列对二维数组中的行数据进行分组,然后用逗号连接每组中的其余列

使用php删除数组中相同数字的所有变体

Laravel 查询关系是否为 bool