-
Notifications
You must be signed in to change notification settings - Fork 5
/
readme_ru.txt
81 lines (73 loc) · 2.51 KB
/
readme_ru.txt
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
Status Behavior
===============
Поведение для моделей, которым нужен статус, например статус постов.
Установка и настройка
---------------------
Добавить поле в таблицу и модель. В примере, это поле `status`.
Тип поля зависит от настроек поведения.
Сконфигурировать модель:
~~~
[php]
class Post extends CActiveRecord {
public function behaviors() {
return array(
'statuses' => array(
'class' => 'ext.yiiext.behaviors.model.status.EStatusBehavior',
// Поле зарезервированное для статуса
'statusField' => 'status',
// Разрешенные статусы, по умолчнию array('draft', 'published', 'archived').
// Передается массив, ключ каждого элемента массива для сохранения в БД, значение выводится пользователю,
// 'statuses' => array('draft', 'published', 'archived'),
// 'statuses' => array('d' => 'draft', 'p' => 'published', 'a' => 'archived'),
),
);
}
}
~~~
Примеры
-------
### Подключение
~~~
[php]
class Post extends CActiveRecord {
public function behaviors() {
return array(
'statuses' => array(
'class' => 'ext.CStatusBehavior.CStatusBehavior',
'statusField' => 'status',
),
);
}
}
class Book extends CActiveRecord {
public function behaviors() {
return array(
'statuses' => array(
'class' => 'ext.CStatusBehavior.CStatusBehavior',
'statusField' => 'status',
'statuses' => array(
'new' => 'new',
'reserved' => 'reserved',
'sale' => 'sale',
),
),
);
}
}
~~~
### Использование
~~~
[php]
$post=Post::model()->findByPk(1);
// Выводим статус
echo $post->getStatus();
// Изменяем статус
$post->setStatus('draft');
// Сохраняем модель
if ($post->save() === FASLE) {
echo 'ошибки сохранения';
}
$post = Post::model()->findByPk(1);
// Изменяем статус cохраняем только поле status
$post->setStatus('draft')->saveStatus();
~~~