【问题标题】:Carbon\Carbon not found inconsistently - Laravel 5.5碳\碳的发现不一致 - Laravel 5.5
【发布时间】:2017-12-04 14:37:37
【问题描述】:

所以目前我拉回一个日期并将其转换为可读的碳格式:

</div>
<div class="">
 <label for="Name">Letter Sent:</label>
 @if (is_null($Client->letter_posted))
 @else
   {{  \carbon\carbon::createFromFormat('Y-m-d',$Client->letter_posted)->format('d/m/Y')}}
 @endif
</div>

它在测试时有效(在 letter_posted 为 null 和不为 null 时同时测试)但是偶尔它会在实时服务器上吐出错误:

Class 'carbon\carbon' not found

在过去 2 个月内仅随机发生 3 次,刷新页面将消除此错误,例如。出现错误,如果您刷新页面,它不再存在。

任何帮助表示赞赏。

【问题讨论】:

    标签: php laravel laravel-5.5 php-carbon


    【解决方案1】:

    将代码改为:

    {{  \Carbon\Carbon::createFromFormat('Y-m-d',$Client->letter_posted)->format('d/m/Y')}}
    

    当您在区分大小写的服务器中部署系统时会发生这种情况。

    【讨论】:

    • 如果这是每次都会出错的问题吗?
    • 最好将该逻辑移到控制器中,不要在视图中这样做。
    • 例如,如果您正在使用 Windows 进行开发,但您在 Linux 机器上部署应用程序,这可能会在您部署时发生。
    • 问题是,它也不会在实时服务器上发生。至少 99% 的时间。人们每天都在使用这个网站,但是每两周左右就会在不同的客户中弹出这个错误。
    • 我明白,但您应该考虑这个区分大小写的问题。这当然是一个实际问题,也可能导致未来的问题。您应该考虑遵循 PHP 良好实践以避免此类问题。这不是官方的,但可以帮助你,看看:github.com/alexeymezenin/laravel-best-practices
    【解决方案2】:

    您很可能收到错误消息,因为您在代码中的某处使用了carbon\carbon 而不是\carbon\carbon

    \放在前面是指全局命名空间。如果没有\,您指的是一个可能不存在的类(这是您遇到的错误)。

    见:Class 'App\Carbon\Carbon' not found Laravel 5


    你可以创建一个别名来避免在 Laravel 中使用全名。在app.php 中,转到别名并添加'Carbon' =&gt; 'Carbon\Carbon'。然后你可以像这样使用它: {{ Carbon::createFromFormat('Y-m-d', $Client-&gt;letter_posted)-&gt;format('d/m/Y') }}


    附加说明:虽然 PHP 命名空间不区分大小写,但最好将它们视为区分大小写:使用 \Carbon\Carbon 而不是 \carbon\carbon

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2016-04-19
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      • 2018-01-01
      相关资源
      最近更新 更多