当前位置: 首页>>代码示例>>PHP>>正文


PHP CActiveRecord::remove方法代码示例

本文整理汇总了PHP中CActiveRecord::remove方法的典型用法代码示例。如果您正苦于以下问题:PHP CActiveRecord::remove方法的具体用法?PHP CActiveRecord::remove怎么用?PHP CActiveRecord::remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CActiveRecord的用法示例。


在下文中一共展示了CActiveRecord::remove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: 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();
         // }
     }
 }
开发者ID:Rustam44,项目名称:ASUPortalPHP,代码行数:80,代码来源:CUserForm.class.php


注:本文中的CActiveRecord::remove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。