当前位置:  开发笔记 > 编程语言 > 正文

Laravel约会不允许我使用diffForHumans

如何解决《Laravel约会不允许我使用diffForHumans》经验,为你挑选了2个好方法。

让我的表设置时间戳字段,以便在字段中创建和更新.

在我的模型中,我这样做:

protected $dates = ['created_at', 'updated_at'];

但是在致电日期时:

$p->created_at->diffForHumans()

我明白了

Call to a member function diffForHumans() on string

我很确定这应该有用.我以前在不同型号上使用过相同的次数等,但这不起作用.



1> Roshimon..:

默认情况下,Eloquent会将created_at和updated_at列转换为Carbon实例,后者提供各种有用的方法,并扩展本机PHP DateTime类.

阅读:https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

只需检查您的composer.json文件中的nesbot/carbon包.如果您没有,可以通过键入来安装它

composer require nesbot/carbon

替代解决方案是,

您可以使用Carbon :: parse()动态创建对象.

Carbon::parse($p->created_at)->diffForHumans();



2> Pyr James..:

该Laravel diffForHumans()我在5.2版本已经使用的功能,只有当您使用的是工作created_atupdated_at,否则会带来你的Call to a member function diffForHumans() on string错误.即使您已经使用了created_at,但是请updated_at确保在您的迁移中,您还没有使用过:

$table->timestamp('created_at');
$table->timestamp('updated_at');

但你已经习惯了

$table->timestamps();

有根据laravel但只是柜面出于某种原因,你想用的不同diffForHumans()功能列,既不created_atupdated_at,例如 expired_at,用碳

我总结的是:

    您可以Addon在laravel项目文件夹中调用第一个创建新文件夹,例如test-laravel

    然后在文件夹中创建一个名为的新文件Carbon.php.

    Carbon.php文件内输入:


namespace Carbon;

class Carbon extends \DateTime{
    //
}

然后转到您的控制器,例如ProductController.php将Carbon命名空间添加到文件中:


namespace Addon;
namespace App\Http\Controllers;

use Carbon\Carbon;
use ...

class ProductController extends Controller{
   $expire_date_string = '2016-07-27 12:45:32';
   //  Parse date with carbon
   $carbonated_date = Carbon::parse($expire_date_string);
   //  Assuming today was 2016-07-27 12:45:32
   $diff_date = $carbonated_date->diffForHumans(Carbon::now());
   echo $diff_date; // prints "1 month after"
}

有关碳控制器的更多信息,请访问:http://carbon.nesbot.com/docs/

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有