本文整理汇总了PHP中CActiveRecord::insert方法的典型用法代码示例。如果您正苦于以下问题:PHP CActiveRecord::insert方法的具体用法?PHP CActiveRecord::insert怎么用?PHP CActiveRecord::insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CActiveRecord
的用法示例。
在下文中一共展示了CActiveRecord::insert方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
public function save()
{
parent::save();
/**
* У сотрудников, которых нет приказов по
* ГАК в году комиссии автоматически устанавливается
* приказ от комиссии
*/
if ($this->order_id !== 0) {
$persons = new CArrayList();
foreach ($this->members->getItems() as $person) {
$persons->add($person->getId(), $person);
}
if (!is_null($this->manager)) {
$persons->add($this->manager->getId(), $this->manager);
}
foreach ($persons->getItems() as $person) {
if (is_null($person->getSABOrdersByYear($this->year))) {
$ar = new CActiveRecord(array("id" => null, "person_id" => $person->getId(), "year_id" => $this->year->getId(), "order_id" => $this->order_id));
$ar->setTable(TABLE_SAB_PERSON_ORDERS);
$ar->insert();
}
}
}
}
示例2: save
public function save()
{
$group = $this->group;
$roles = array();
if (array_key_exists("roles", $group)) {
$roles = $group["roles"];
unset($group["roles"]);
}
$groupObj = new CUserGroup();
$groupObj->setAttributes($group);
/**
* Удаляем старые задачи группы и пользователей
*/
foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_GROUP_HAS_ROLES, "user_group_id = " . $groupObj->getId())->getItems() as $ar) {
$ar->remove();
}
$groupObj->save();
/**
* Создаем новые задачи группы и пользователей
*/
foreach ($roles as $role => $level) {
if ($level != 0) {
$ar = new CActiveRecord(array("id" => null, "user_group_id" => $groupObj->getId(), "task_id" => $role, "task_rights_id" => $level));
$ar->setTable(TABLE_USER_GROUP_HAS_ROLES);
$ar->insert();
}
}
}
示例3: save
public function save()
{
$this->grant->save();
/**
* Работа с участниками
*/
$members = array();
if (array_key_exists("members", $this->_fields)) {
$members = $this->_fields["members"];
}
/**
* Делаем руководителя тоже участником
*/
if ($this->grant->manager_id != "0") {
$members[] = $this->grant->manager_id;
}
/**
* Удаляем старых участников
*/
foreach (CActiveRecordProvider::getWithCondition(TABLE_GRANT_MEMBERS, "grant_id= " . $this->grant->getId())->getItems() as $ar) {
$ar->remove();
}
/**
* Добавляем новых
*/
foreach ($members as $member) {
$ar = new CActiveRecord(array("id" => null, "grant_id" => $this->grant->getId(), "person_id" => $member));
$ar->setTable(TABLE_GRANT_MEMBERS);
$ar->insert();
}
}
示例4: save
public function save()
{
$commission = $this->commission;
$members = array();
if (array_key_exists("members", $commission)) {
$members = $commission["members"];
unset($commission["members"]);
}
$commObj = new CDiplomPreviewComission();
$commObj->setAttributes($commission);
$commObj->save();
$this->commission = $commObj;
foreach (CActiveRecordProvider::getWithCondition(TABLE_DIPLOM_PREVIEW_MEMBERS, "comm_id=" . $commObj->getId())->getItems() as $ar) {
$ar->remove();
}
foreach ($members as $m) {
if ($m !== 0) {
$ar = new CActiveRecord(array("comm_id" => $commObj->getId(), "kadri_id" => $m, "id" => null));
$ar->setTable(TABLE_DIPLOM_PREVIEW_MEMBERS);
$ar->insert();
}
}
}
示例5: save
public function save()
{
$personArr = $this->person;
/**
* Сохраняем сотрудника
*/
$this->person->save();
/**
* Удаляем старые типы участия на кафедре
*/
foreach (CActiveRecordProvider::getWithCondition(TABLE_PERSON_BY_TYPES, "kadri_id=" . $this->person->getId())->getItems() as $ar) {
$ar->remove();
}
/**
* Сохраняем новые типы участия на кафедре
*/
foreach ($this->_types as $type) {
if ($type != "" && $type != "0") {
$ar = new CActiveRecord(array("kadri_id" => $this->person->getId(), "person_type_id" => $type, "id" => null));
$ar->setTable(TABLE_PERSON_BY_TYPES);
$ar->insert();
}
}
}
示例6: insert
public function insert($attributes = null)
{
$succeeded = parent::insert($attributes);
// Alter and save the nameId field:
if ($succeeded && self::$autoPopulateFields) {
$this->updateNameId(true);
if ($this->hasEventHandler('onAfterInsert')) {
$this->onAfterInsert(new CEvent($this));
}
}
return $succeeded;
}
示例7: insert
public function insert($attributes = null)
{
$this->createDate = time();
return parent::insert($attributes);
}
示例8: updateWithJsonString
/**
* Обновление модели на основе данных, пришедших из json-контроллера
*
* @param $jsonString
* @return array
*/
public function updateWithJsonString($jsonString)
{
// данные модели
$modelData = json_decode($jsonString, true);
// убираем служебную инфу
if (array_key_exists("_translation", $modelData)) {
unset($modelData["_translation"]);
}
// попробуем сохранить данные, которые находятся в отношениях
// многие-ко-многим
foreach ($this->relations() as $field => $properties) {
if ($properties["relationPower"] == RELATION_MANY_TO_MANY) {
if (array_key_exists($field, $modelData)) {
$data = $modelData[$field];
// уберем их из модели
unset($modelData[$field]);
// уберем уже имеющиеся данные из связанной таблицы
/**
* @var CActiveRecord $ar
*/
if (array_key_exists("id", $modelData)) {
foreach (CActiveRecordProvider::getWithCondition($properties["joinTable"], trim(CUtils::strLeft($properties["leftCondition"], "=")) . "=" . $modelData["id"])->getItems() as $ar) {
$ar->remove();
}
}
// добавим туда новые данные
foreach ($data as $value) {
$ar = new CActiveRecord(array($properties["rightKey"] => $value["id"], trim(CUtils::strLeft($properties["leftCondition"], "=")) => $modelData["id"], "id" => null));
$ar->setTable($properties["joinTable"]);
$ar->insert();
}
}
} elseif ($properties["relationPower"] == RELATION_HAS_MANY) {
if (array_key_exists($field, $modelData)) {
$data = $modelData[$field];
// уберем данные из модели
unset($modelData[$field]);
// если в свойствах отношения указан целевой класс, то
// будем обновлять автоматом
if (array_key_exists("targetClass", $properties)) {
// получим список записей, которые уже есть
$targetClass = $properties["targetClass"];
/**
* @var CActiveModel $targetObj
*/
$targetObj = new $targetClass();
$docsToRemove = array();
// его может не быть, если запись новая
if (array_key_exists("id", $modelData)) {
$items = CActiveRecordProvider::getWithCondition($targetObj->getTable(), trim(CUtils::strLeft($properties["storageCondition"], "=")) . "=" . $modelData["id"]);
/**
* @var CActiveRecord $item
*/
foreach ($items->getItems() as $item) {
$docsToRemove[] = $item->getId();
}
}
/**
* @var string $item
*/
foreach ($data as $item) {
// полученные данные обратно в json, чтобы
// можно было все сделать одинаково рекурсивно
$childJsonData = json_encode($item);
// создадим экземпляр целевого класса
/**
* @var CActiveModel $targetObj
*/
$targetObj = new $targetClass();
$targetObj->updateWithJsonString($childJsonData);
$targetObj->save();
// уберем из списка добавленную запись
if (in_array($targetObj->getId(), $docsToRemove)) {
unset($docsToRemove[array_search($targetObj->getId(), $docsToRemove)]);
}
}
// удалим элементы из списка на удаление - мы
// их удалили и вместе с другими данными с клиента
// они не пришли
if (count($docsToRemove) > 0) {
CActiveRecordProvider::removeWithCondition($targetObj->getTable(), "id in (" . implode(", ", $docsToRemove) . ")");
}
}
}
}
}
// данные обратно в модель
foreach ($modelData as $key => $value) {
$this->{$key} = $value;
}
return $modelData;
}
示例9: save
/**
* Сохранение данных поручим модели чтобы
* контроллер не нагружать
*/
public function save()
{
/**
* Извлечем все данные из текущей модели.
* Мы будем сохранять их по отдельности
*/
$user = $this->user;
$roles = array();
$groups = array();
if (array_key_exists("groups", $user)) {
$groups = $user["groups"];
unset($user["groups"]);
}
if (array_key_exists("roles", $user)) {
$roles = $user["roles"];
unset($user["roles"]);
}
$userObj = new CUser();
$userObj->setAttributes($user);
if ($this->changePassword == 1) {
if ($this->newPassword !== "") {
$userObj->password = md5($this->newPassword);
}
}
$userObj->save();
$this->user = $userObj;
/**
* Удаляем старые упоминания о группах, в которых
* пользователь состоял
*/
foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_IN_GROUPS, "user_id = " . $userObj->getId())->getItems() as $ar) {
$ar->remove();
}
foreach ($groups as $group) {
$ar = new CActiveRecord(array("user_id" => $userObj->getId(), "group_id" => $group, "id" => null));
$ar->setTable(TABLE_USER_IN_GROUPS);
$ar->insert();
}
/**
* Исключаем из личных прав пользователей те, которые совпадают с правами
* на задачу
*
* 08.11.2014
* Больше так не делаем - пусть система работает тривиально. Если это
* личные права, то они до конца личные
*
foreach ($userObj->getGroups()->getItems() as $group) {
foreach ($group->getRoles()->getItems() as $role) {
if (array_key_exists($role->getId(), $roles)) {
if ($role->level == $roles[$role->getId()]) {
unset($roles[$role->getId()]);
}
}
}
}
*/
/**
* Удаляем старые и сохраняем отличающиеся
*/
foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_HAS_ROLES, "user_id = " . $userObj->getId())->getItems() as $ar) {
$ar->remove();
}
/**
* Сохраняем личные права пользователя
*/
foreach ($roles as $role => $level) {
/**
* Можно индивидуально запрещать доступ к задаче
*/
// if ($level != 0) {
$ar = new CActiveRecord(array("id" => null, "user_id" => $userObj->getId(), "task_id" => $role, "task_rights_id" => $level));
$ar->setTable(TABLE_USER_HAS_ROLES);
$ar->insert();
// }
}
}
示例10: insert
public function insert($attributes = null)
{
$this->id = EncryptUtil::secureUniqueIdHash64();
$this->requested = time();
$this->getIpAddr();
return parent::insert($attributes);
}