小编fud*_*udo的帖子

确定重叠 DATETIME 范围的最大数量

我有一张有一些范围的桌子DATETIME,比如

id | start               | end
----------------------------------------------
1  | 2011-12-18 16:00:00 | 2011-12-18 17:00:00
2  | 2011-12-19 08:00:00 | 2011-12-19 10:00:00
3  | 2011-12-19 11:00:00 | 2011-12-19 13:00:00
4  | 2011-12-19 12:00:00 | 2011-12-19 14:00:00
5  | 2011-12-19 13:00:00 | 2011-12-19 15:00:00
6  | 2011-12-19 13:00:00 | 2011-12-19 14:00:00
7  | 2011-12-20 13:00:00 | 2011-12-20 14:00:00
Run Code Online (Sandbox Code Playgroud)

因此,2011 年 12 月 19 日的范围如下:

8    9   10   11   12   13   14   15
<-------->
               <-------->
                    <-------->
                         <-------->
                         <---->
Run Code Online (Sandbox Code Playgroud)

目标是,在插入新记录时,找到已存在的重叠范围的最大数量:即:在插入新范围时,2011-12-19 12:00:00 …

mysql sql datetime range overlap

4
推荐指数
1
解决办法
1849
查看次数

Laravel required_without 数组中的验证规则

假设我有一个由property_a和组成的对象property_b,提交时必须至少接收这两个属性之一。
如果对象只是一个,我可以使用required_without如下验证规则

return [
    'property_a' => ['required_without:property_b'],
    'property_b' => ['required_without:property_a'],
];
Run Code Online (Sandbox Code Playgroud)

如果我的对象本身在另一个对象内部,那么使用点分符号会很容易:

return [
    'parent_object.property_a' => ['required_without:parent_object.property_b'],
    'parent_object.property_b' => ['required_without:parent_object.property_a'],
];
Run Code Online (Sandbox Code Playgroud)

但是我如何将这个验证规则与对象数组一起使用?

return [
    'array.*.property_a' => ['required_without:???.property_b'],
    'array.*.property_b' => ['required_without:???.property_a'],
];
Run Code Online (Sandbox Code Playgroud)

required_without的文档没有明确说明我的用例。
有解决方法吗?

arrays required-field validationrules laravel

3
推荐指数
1
解决办法
2086
查看次数

Laravel Livewire 绑定模型 Carbon 属性

我正在使用 Laravel Livewire v2,我需要将表单日期输入绑定到后端 Livewire 组件中的模型 Carbon 属性,但似乎不可能进行到期日期格式化。

更准确地说:

  • 选择日期时的形式日期输入选择器的LiveWire作出API调用发送正确的日期(例如:2020-02-02
  • Livewire 组件正确接收字符串值并将其传递给模型
  • 模型将字符串转换为 Carbon 对象并将其分配给它的可填充属性
  • Livewire 组件尝试将数据发送回客户端,但它不执行 ->format('Y-m-d')对 Carbon 对象格式化,因此发送了一个序列化的日期对象
  • 当对象被反序列化时接收例如 2012-12-25T20:30:00.000000+04:00 MSK
  • 日期输入中断

我还发现在 Livewire v1 中可以使用键值数组或自定义转换方法转换属性(链接),但这在 v2(链接)中已被删除;有一个例子hydrate/dehydrate方法实现相同效果的示例,但该示例涵盖了组件属性的情况,而不是像我这样的嵌套属性。

有没有办法在将数据发送回客户端时投射模型日期道具或添加格式?

casting date-formatting laravel laravel-livewire

3
推荐指数
1
解决办法
3073
查看次数

NuxtJs - 如何检查 useFetch 响应代码?

使用 NuxtJs 时如何检查响应状态代码useFetch

目前我正在按如下方式处理响应,但我无法在任何地方找到如何获取确切的响应状态代码,只有错误消息,例如FetchError: 403 Forbidden

useFetch(url, options).then(
    (res) => {
        const data = res.data.value;
        const error = res.error.value;

        if (error) {
            console.error(error);
            // handle error
        } else {
            console.log(data);
            // handle success
        }
    },
    (error) => {
        console.error(error);
    }
);
Run Code Online (Sandbox Code Playgroud)

response httpresponse nuxt.js nuxtjs3

3
推荐指数
1
解决办法
5544
查看次数

将 Eloquent HasMany 关系转换为 HasOne?

好吧,我有模型A链接到许多模型B,让模型A有一个hasMany以模型关系B和模型B有一个belongsTo到模型的关系A

但是,在所有这些中,B有一个特定的,例如具有更高价值的那个,我希望模型A与之建立专门的关系。

我知道我可以在模型A中创建第二个关系,重新使用旧的关系并添加我想要的所有范围和条件,但是由于我正在从 a 构建这个新关系hasMany,它无论如何都会返回一个集合结果。

有没有办法让它返回单个结果而不是集合?我知道我可以添加一个first(),但这涉及将这个新关系用作函数,即始终使用括号,如果可能,我仍希望以雄辩的方式使用它。

有可能这样做吗?如果是,如何?

has-many relationship has-one eloquent

2
推荐指数
1
解决办法
873
查看次数