postgresql - Yii2:如何使用 PostgreSQL 的函数?

标签 postgresql model-view-controller yii2

我有一个名为 persons 的表有三列称为 id , namebirth .

我可以得到 namebirth但我需要使用它的 birth 来计算人的年龄日期。我想使用 PostgreSQL 的函数: age(timestamp) .但我不知道如何使用它。

有什么办法可以使用 PostgreSQL 的函数吗?

我试图在 View 中使用它,但后来我意识到它不起作用:

$person = \app\models\Persons::findOne(['id' => 1234]);
$myName  = $person->name;
$myBirth = $person->birth;
$myAge   = $person->age(birth);

我应该更改模型吗?我不知道在哪里使用 age功能。

最佳答案

在您的模型中,您应该定义公共(public)属性 public $age;。然后,您的选择语句应该是这样的:

$person = Persons::find()->select(['name', 'birth', 'age(birth) as age'])->andWhere(['id' => 1234])->one();

然后您可以将其作为属性访问:

$person->age;

关于postgresql - Yii2:如何使用 PostgreSQL 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46413201/

相关文章:

sql - 如何衡量数据库索引的成本?

yii - 如何从 url 中查找 YII 路由

javascript - Geddy.js - 在没有布局的情况下渲染部分 View ,可能吗?

javascript - OOP 中 Controller 类常见吗

yii2 - 如何从 Yii2 的`ApiTester 实例中调用 `grabFixture()` 方法?

php - 如何在 yii2 ActiveRecord 中使用查询缓存

postgresql - 为(斯坦福)Deepdive 准备数据(ValueError)

postgresql - 如何在 docker 中恢复 postgres?

java - DB 列上的 Spring JPA 错误返回与列名称相关的错误

java - 如果我想编写 servlet,是否必须重写所有 Java 服务器?