2017-09-25 46 views
1

我有一個名爲persons的表,它有三列,分別叫做id,namebirthYii2:如何使用PostgreSQL的函數?

我能得到namebirth,但我需要使用它的birth日期來計算年齡的人的。我想使用PostgreSQL的功能:age(timestamp)。但我不知道用它。

有沒有辦法使用PostgreSQL的函數?

我試圖在視圖中使用它,但後來我意識到這將不起作用:

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

我應該改變的模式?我不知道在哪裏使用age函數。

回答

3

在你的模型中,你應該定義公共屬性public $age;。然後,你的SELECT語句應該是這樣的:

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

然後你就可以訪問它作爲財產:

$person->age;