yii 用户管理 controller

来源:互联网 发布:哥本哈根协议 知乎 编辑:程序博客网 时间:2024/04/29 06:36
<pre name="code" class="php">namespace app\modules\admin\controllers;use yii\web\Controller;class BaseController extends Controller{            public function url(){        return \Yii::$app->urlManager;    }}


<?php/*  * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */namespace app\modules\admin\controllers;use yii\web\Controller;use yii\web\Request;use app\models\User;use yii\data\Pagination;use app\models\Role;class UserController extends BaseController{        public $enableCsrfValidation = true;    public $defaultAction="";    public  $request= null;        public function init(){        $this->request= \Yii::$app->request;    }    /**     * 用户列表     */    public function actionList(){                 $userModel=new User();         $query=$userModel->find()->where(array());         $countQuery=  clone $query;         $pages=new Pagination(array('totalCount'=>$countQuery->count()));         $pages->defaultPageSize=5;         $result=$query->offset($pages->offset)->limit($pages->limit)->all();                  $roleModel=new Role();         $role=$roleModel->find()->all();                     return $this->renderPartial("list",array('model'=>$result,'pages'=>$pages,"roles"=>$role));    }        /**     * 添加用户     */    public function actionAdd(){        if( $this->request->getIsPost()){            $post=$this->request->post();            unset($post['_csrf']);            $userModel=new User();            if($userModel->checkRepeat($post)){                exit("不能添加重复记录");            }            $userModel->scenario="add";             $userModel->attributes=$post;            if( $userModel->insert() ){                return $this->redirect($this->url()->createUrl("admin/user/list"));            }                 return $this->redirect($this->url()->createUrl("admin/user/add"));        }else{            $roleModel=new Role();            $role=$roleModel->find()->all();            return $this->renderPartial("add",array("roles"=>$role));        }    }        /**     * 更新用户     */    public function actionUpdate(){        $userModel=new User();        if( $this->request->getIsPost()){            $post=$this->request->post();            if($post['password']==""){                unset($post['password']);            }            unset($post['_csrf']);            $connection= \Yii::$app->db;            //生成键值对            $str="";            $uid=$post['user_id'];            unset($post['user_id']);            if(!empty($post)){                foreach ($post as $k=>$v){                    if($v!=""){                        $str.="`".$k."`='".$v."',";                    }                }                $str=  rtrim($str,",");                $sql="UPDATE `tb_user` SET  $str  WHERE `user_id`=:uid";                $update=$connection->createCommand($sql);                $result=$update->bindValue(':uid',$uid)->execute();                if( $result ){                    return $this->redirect($this->url()->createUrl("admin/user/list"));                }            }                       return $this->redirect($this->url()->createUrl(array("admin/user/update",'uid'=>$post['user_id'])));        }else{            $roleModel=new Role();            $role=$roleModel->find()->all();            $uid=  $this->request->get("uid");            $result=$userModel->findOne($uid);            return $this->renderPartial("update",array('model'=>$result,"roles"=>$role));        }    }        /**     * 删除用户     */    public function actionDelete(){        $uid=  $this->request->get("uid");        if(empty($uid)){            return false;        }        $userModel=new User();        $newModel=$userModel->findOne($uid);        $newModel->scenario='delete';        if($newModel->delete()){             return $this->redirect($this->url()->createUrl("admin/user/list"));        }         return "删除失败";    }        /**     * 查看详情     */    public function actionDetial(){        $uid=  $this->request->get("uid");        if(empty($uid)){            return false;        }               $userModel=new User();        $newModel=$userModel->findOne($uid);        $roleModel=new Role();        $role=$roleModel->find()->where("role_id=".$newModel->role_id)->one();        $newModel->role_id=$role->role_name;        return $this->renderPartial("detial", array("model"=>$newModel));    }    }

0 0