我有一个名为persons
的表,其中有三列名为id
,name
和birth
。
我可以获得name
和birth
,但我需要使用birth
日期来计算年龄。我想使用PostgreSQL的函数:age(timestamp)
。但我不知道如何使用它。
有没有办法使用PostgreSQL的功能?
我试图在视图中使用它,但后来我发现它不起作用:
$person = \app\models\Persons::findOne(['id' => 1234]);
$myName = $person->name;
$myBirth = $person->birth;
$myAge = $person->age(birth);
我应该更改模型吗?我不知道在哪里使用age
功能。
答案 0 :(得分:3)
在您的模型中,您应该定义公共属性public $age;
。然后,您的select语句应如下所示:
$person = Persons::find()->select(['name', 'birth', 'age(birth) as age'])->andWhere(['id' => 1234])->one();
然后您可以将其作为属性访问:
$person->age;