我已经将生日保存在MySQL数据库中。
xs:selector/@xpath
现在我想显示年龄。我的查询是:
table name : **users**
field name : **dob**
我正在使用Laravel 5.5。
但这会产生错误。如何在Laravel中使用查询生成器计算年龄?
答案 0 :(得分:2)
您可以使用selectRaw
,然后使用像这样的mysql函数
$user_info = DB::table('users')
->selectRaw("TIMESTAMPDIFF(YEAR, DATE(dob), current_date) AS age")
->get();
答案 1 :(得分:1)
我建议您在app/User.php
模型中创建自定义属性。
例如:
在您的User.php
public function getAgeAttribute() {
return $this->dob->diffInYears(\Carbon\Carbon::now());
}
现在,在controller
和/或view
中,您可以通过执行以下操作将该方法作为属性来访问:
Auth::user()->age;
这将根据getAgeAttribute()
在用户模型中设置一个属性。
有关更多信息,请查看:this GIST
答案 2 :(得分:0)
您可以像这样在模型中定义一个函数
public function age() {
return $this->dob->diffInYears(\Carbon::now());
}
之后,您可以这样称呼
{{ $user->age() }}}