【问题标题】:Carbon get current date if variable is null如果变量为空,Carbon 获取当前日期
【发布时间】:2017-12-20 10:36:53
【问题描述】:

在我的刀片编辑表单中,我有这个:

<input type="text" name="birth" class="form-control" id="birth" value="{{ \Carbon\Carbon::parse($associado->birth)->format('d/m/Y') }}">

问题是:如果 $associado-&gt;birth 在数据库中为 NULL,Carbon 将返回当前日期。

我能做些什么来避免这种情况?

【问题讨论】:

  • $associado 是 Eloquent 模型吗?

标签: php laravel laravel-blade php-carbon


【解决方案1】:

您需要检查该值是否为null

此外,您可以在 eloquent 模型中将 birth 添加到 $dates 数组属性中。

protected $dates = [
    'dates'
];

这将告诉 eloquent 模型将此列转换为 Carbon 实例,就像对 created_atupdated_at 所做的那样。如果列 if null 它将简单地返回 null。

您的代码将如下所示:

{{ $associado->birth ? $associado->birth->format('d/m/Y')  : null }}

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    在使用 Carbon 解析之前检查 $associado-&gt;birth 是否为 NULL。

    如果它有一个真值,它不是 NULL,你可以解析它 - 否则只需在你的值中返回 set null。

    这里是一个使用三元运算符的例子

    value="{{ $associado->birth ? \Carbon\Carbon::parse($associado->birth)->format('d/m/Y') : null}}
    

    再一次,当使用这么多逻辑时,它应该放在它自己的函数中。

    【讨论】:

      【解决方案3】:

      您可以使用createFromFormat()Carbon 来做到这一点。

      value = "{{$associado->birth ? \Carbon\Carbon::createFromFormat('d\m\Y',
                $associado->birth)->toDateString() : null}}"
      

      这将检查存储在数据库中的日期字符串值,并在Null值的情况下为空。

      希望你能理解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        相关资源
        最近更新 更多