mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 21:41:19 +08:00
Added count, average, sum, min, max, scalar methods to ActiveQuery.
Added support for scopes defined in AR classes.
This commit is contained in:
@ -19,4 +19,9 @@ class Customer extends ActiveRecord
|
||||
{
|
||||
return $this->hasMany('Order', array('customer_id' => 'id'))->orderBy('id');
|
||||
}
|
||||
|
||||
public static function active($query)
|
||||
{
|
||||
return $query->andWhere('status=1');
|
||||
}
|
||||
}
|
||||
@ -55,10 +55,17 @@ class ActiveRecordTest extends \yiiunit\MysqlTestCase
|
||||
$this->assertEquals(3, $customer->id);
|
||||
$this->assertEquals(4, $customer->status2);
|
||||
|
||||
// find count
|
||||
$this->assertEquals(3, Customer::count()->value());
|
||||
$this->assertEquals(2, Customer::find()->select('COUNT(*)')->where('id=1 OR id=2')->value());
|
||||
$this->assertEquals(6, Customer::count('SUM(id)')->value());
|
||||
// find count, sum, average, min, max, scalar
|
||||
$this->assertEquals(3, Customer::find()->count());
|
||||
$this->assertEquals(2, Customer::find()->where('id=1 OR id=2')->count());
|
||||
$this->assertEquals(6, Customer::find()->sum('id'));
|
||||
$this->assertEquals(2, Customer::find()->average('id'));
|
||||
$this->assertEquals(1, Customer::find()->min('id'));
|
||||
$this->assertEquals(3, Customer::find()->max('id'));
|
||||
$this->assertEquals(3, Customer::find()->select('COUNT(*)')->scalar());
|
||||
|
||||
// scope
|
||||
$this->assertEquals(2, Customer::find()->active()->count());
|
||||
|
||||
// asArray
|
||||
$customer = Customer::find()->where('id=2')->asArray()->one();
|
||||
|
||||
Reference in New Issue
Block a user