首页 > 解决方案 > 使用属性 laravel 计算变量

问题描述

我有一个简单的代码,可以输出一个人的新时代。如果一个人 17 岁,它应该输出 18。
但我在刀片上计算这个(我认为这很糟糕)。我正在尝试使用属性来处理这个问题,但是由于我对 Laravel 很陌生,所以我不知道如何处理它。

请帮我...

这就是我计算
{{date('Y') - $birth->birth_date->year + 1}}
它的方法是从记录中减少当前年份并获取当前年龄,然后添加 1。
有没有更可靠的方法来做到这一点(比如使用属性)?

我已经尝试为我的 eloquent 添加属性,但我找不到方法

标签: phplaravel

解决方案


最好将其定义为模型上的 mutator/accessor:

User.php(或其他$birth

use Carbon\Carbon;

class User extends Model {
  protected $dates = ['birth_date'];

  public function getAgeAttribute() {
    return Carbon::now()->diffInYears($this->birth_date);
  }
  ...
}

然后,在您的.blade.php文件中:

{{ $birth->age }} // 18 (or 17)

推荐阅读