Files
yii2/tests/data/ar/Customer.php
Carsten Brandt d0c6cb7700 abort removing duplicate records when pk is not in result set
in this cases it does not make sense to remove duplicates as the result is not on record level anymore.
This could be the case after GROUP BY has been applied.

fixes #8772
2015-06-14 19:29:57 +02:00

95 lines
2.4 KiB
PHP

<?php
namespace yiiunit\data\ar;
use yii\db\ActiveQuery;
use yiiunit\framework\db\ActiveRecordTest;
/**
* Class Customer
*
* @property integer $id
* @property string $name
* @property string $email
* @property string $address
* @property integer $status
*
* @method CustomerQuery findBySql($sql, $params = []) static
*/
class Customer extends ActiveRecord
{
const STATUS_ACTIVE = 1;
const STATUS_INACTIVE = 2;
public $status2;
public $sumTotal;
public static function tableName()
{
return 'customer';
}
public function getProfile()
{
return $this->hasOne(Profile::className(), ['id' => 'profile_id']);
}
public function getOrdersPlain()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id']);
}
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id'])->orderBy('id');
}
public function getExpensiveOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id'])->andWhere('[[total]] > 50')->orderBy('id');
}
public function getExpensiveOrdersWithNullFK()
{
return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->andWhere('[[total]] > 50')->orderBy('id');
}
public function getOrdersWithNullFK()
{
return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->orderBy('id');
}
public function getOrders2()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id'])->inverseOf('customer2')->orderBy('id');
}
// deeply nested table relation
public function getOrderItems()
{
/* @var $rel ActiveQuery */
$rel = $this->hasMany(Item::className(), ['id' => 'item_id']);
return $rel->viaTable('order_item', ['order_id' => 'id'], function ($q) {
/* @var $q ActiveQuery */
$q->viaTable('order', ['customer_id' => 'id']);
})->orderBy('id');
}
public function afterSave($insert, $changedAttributes)
{
ActiveRecordTest::$afterSaveInsert = $insert;
ActiveRecordTest::$afterSaveNewRecord = $this->isNewRecord;
parent::afterSave($insert, $changedAttributes);
}
/**
* @inheritdoc
* @return CustomerQuery
*/
public static function find()
{
return new CustomerQuery(get_called_class());
}
}