forked from yiisoft/yii2-redis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Customer.php
105 lines (92 loc) · 2.49 KB
/
Customer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
namespace yiiunit\extensions\redis\data\ar;
use yiiunit\extensions\redis\ActiveRecordTest;
/**
* Customer
*
* @property int $id
* @property string $name
* @property string $email
* @property string $address
* @property int $status
*
* @method CustomerQuery findBySql($sql, $params = []) static
*
* @property Order[] $orders
* @property Order[] $expensiveOrders
* @property Order[] $expensiveOrdersWithNullFK
* @property Order[] $ordersWithNullFK
* @property Order[] $ordersWithItems
*/
class Customer extends ActiveRecord
{
const STATUS_ACTIVE = 1;
const STATUS_INACTIVE = 2;
public $status2;
/**
* @inheritdoc
*/
public function attributes()
{
return ['id', 'email', 'name', 'address', 'status', 'profile_id'];
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id']);
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getExpensiveOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id'])->andWhere("tonumber(redis.call('HGET','order' .. ':a:' .. pk, 'total')) > 50");
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getExpensiveOrdersWithNullFK()
{
return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->andWhere("tonumber(redis.call('HGET','order' .. ':a:' .. pk, 'total')) > 50");
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getOrdersWithNullFK()
{
return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id']);
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getOrdersWithItems()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id'])->with('orderItems');
}
/**
* @return \yii\redis\ActiveQuery
*/
public function getOrderItems()
{
return $this->hasMany(Item::className(), ['id' => 'item_id'])->via('orders');
}
/**
* @inheritdoc
*/
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());
}
}