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

Laravel 5.2从雄辩的收藏中获取最接近的日期

耿炎彬
2023-03-14

我有一个有说服力的事件模型,它与以下多个日期相关:

$event->dates // shows Collection of 8 Eloquent date models

之后,我需要选择唯一的日期,最接近当前时间的日期。我知道如何使用原始SQL查询或DB类来实现这一点。但是没有更好的解决办法吗?我不想跳进数据库获取数据,我已经有了。

在雄辩的模型中,日期格式是令人惊讶的字符串

共有1个答案

陆斌
2023-03-14

你可以像这样使用我们所说的Laravel突变体-

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Event extends Model
{
    public function dates()
    {
        return $this->hasMany('Date');
    }

    /**
     * Get Dates for the event.
     *
     * @param  string  $value
     * @return array
     */
    public function getDates()
    {
        $dates = $this->dates()->getQuery()->orderBy('created_at', 'asc')->get();
        return $dates;
    }
}

希望这有帮助。

更新

我想现在你也可以直接在模型定义中这样做-

return $this->hasMany('Date')->orderBy('created_at', 'asc')
 类似资料:
  • 问题内容: 我需要从MySQL表中获取与当前日期最接近的日期。 这是我的桌子: 因此,如果查询今天运行,它将返回 任何帮助深表感谢。谢谢 问题答案:

  • 问题内容: 给定此基准日期: 我想在列表中找到一个包含最接近日期的元组,但是它不能是更早的日期。 所以这里的输出应该是(它不能是第三个元组,因为那里的日期早于基准日期) 我的问题是,是否存在用于此类日期比较的任何模块?我试图先将所有数据更改为格式,然后进行比较,但是我的代码变得很丑陋,而且切片很多。 @编辑: 要测试的大清单: 要测试的大清单: 问题答案: 将日期转换为datetime对象,所以现

  • 我有两个日期字段: 开始日期和结束日期和临时日期。 我有一个列表,其中我在开始日期和结束日期之间返回了6条记录。我如何过滤记录并返回最接近临时日期的日期时间? 在示例记录中,我需要获得第二条记录,因为与临时日期相近。实例

  • 我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。例如,我可能会在给定的问题上附加“旅行”、“火车”和“文化”的标签。我希望能够获取这三个标签的所有问题。看起来很棘手的是,问题和标签关系在《雄辩》中被定义为归属的多对多关系。 我想尝试合并以下问题集合: 但它似乎不起作用。似乎没有合并任何内容。我这样做对吗?此外,是否有更好的方法以雄辩的方式获取多对多关系中的一行行?

  • 问题内容: 例如,我有2个时间表:T1 和T2 我需要从T1获取最接近T2的时间。这些表之间没有关系。应该是这样的: 但是我不明白。有什么建议? 问题答案: 我相信这是您要查找的查询: 确保时间列具有相同的日期部分,否则t2.time-t1.time部分将无法正常工作。 编辑 :感谢您的接受,但本的下面的答案是更好。它使用Oracle分析功能,性能会更好。

  • 我想知道收藏中最新的唱片。怎么做? 注意:我知道以下命令行查询工作: 在idate中添加了时间戳。 问题是收集时间更长,我的“测试”收集真的很大。我需要一个具有恒定时间响应的查询。 如果有更好的mongodb命令行查询,一定要告诉我。