【问题标题】:Laravel eloquent firstOrCreate interval of datesLaravel 雄辩的 firstOrCreate 日期间隔
【发布时间】:2018-04-02 20:55:30
【问题描述】:

有没有办法使用带有日期间隔的 firstOrCreate 。我知道你可以使用:

Model::firstOrCreate(['field' => $value], ['created_at' => $dateValue]);

但是是否可以检查最近几天之间的记录是否存在?

【问题讨论】:

    标签: php laravel-5 eloquent


    【解决方案1】:

    如果您查看firstOrCreate 的源代码,检查条件的所有操作就是将其传递给where()

    if (! is_null($instance = $this->where($attributes)->first())) {
        return $instance;
    }
    

    意思是你可以使用任何可以传递给where的东西,包括一个参数数组:

    Model::firstOrCreate([
        ['date', '>', $start],
        ['date', '<', $end]
    ], ['created_at' => $dateValue]);
    

    【讨论】:

    • 我尝试了解决方案,但每次都得到一个新模型。这就是我所做的: $start = "18-04-01 4:41:51"; $end = "18-04-01 22:41:51"; Model::firstOrCreate([ ['created_at', '>', $start], ['created_at', ' $name, 'field' => value ]);
    • @J.Avalos 您是否要检查日期,然后创建一个带有名称和字段的日期?或者您是否也在尝试使用该当前名称检查一个?您的注释代码正在寻找具有所有这些值的代码,您错过了]。此函数需要 2 个参数。
    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2014-11-08
    相关资源
    最近更新 更多