Thinkphp5實現管理員增刪改查(CRUD)

語言: CN / TW / HK

一、管理員新增

 /***    
     * 新增管理員
     */
    public function add(Request $request){
        //判斷提交型別
         if($request->IsPost()){
            //接收資料
            $data=[
                'username'=>input('username'),
                'password'=>input('password')
            ];
            //後臺驗證提交資料合法性
            $validate=Loader::validate('admin');
            if(!$validate->scene('add')->check($data)){
                 $this->error($validate->getError());die();
            }
            $data['password']=md5($data['password']);
            $res=db('admin')->insert($data);
            if($res){
                return $this->success('插入資料成功!','lst');
            }else{
                return $this->error('插入資料失敗!');
            }
         }
        return $this->fetch();
 
二、分頁顯示管理員列表資訊
   /***
     * 管理員列表 
     */
    public function lst(){
        $result=db('admin')->order('id','desc')->paginate(2);
        $this->assign('result',$result);
        return $this->fetch();
    }
三、編輯管理員
列表中編輯按鈕傳值如下: 
更新管理員時要向後臺傳入當前id
<a href="{:url('links/edit',array('id'=>$vo.id))}"  class="btn btn-primary btn-sm shiny">
                                                            <i class="fa fa-edit"></i> 編輯
     </a> 
 
 /** 
     * 編輯管理員資訊
     */
    public function edit(Request $request){       
        $id=input('id');       
        $admin=db('admin')->where('id',$id)->find();        
        if($request->isPost()){ //post提交更新當前使用者資訊
            $data=[//接收提交資料
                'id'=>input('id'),
                'username'=>input('username'),
            ];
            //判斷密碼,如果為空則保持不變
            if(input('password')){
                $data['password']=md5(input('password'));
            }else{
                $data['password']=$admin['password'];
            }
            //資料驗證
            $validate=Loader::validate('admin');
            if(!$validate->scene('edit')->check($data)){
                 $this->error($validate->getError());die();
            }
            //執行更新
            $result=db('admin')->where('id',$id)->update($data);
            if($result){
                return $this->success('更新資料成功!','lst');
            }else{
                return $this->error('更新資料失敗!');
            }
       }
       $this->assign('admin',$admin);
       return $this->fetch();
    }

四、刪除管理員

列表中刪除按鈕傳值如下: 
<a href="#"  onClick="warning('確實要刪除嗎', '{:url('links/delete',array('id'=>$vo['id']))}')"
                                                            class="btn btn-danger btn-sm shiny">
                                                            <i class="fa fa-trash-o"></i> 刪除
   </a>     
/** 
     * 刪除管理員
     */
    public function delete(Request $request){
        $id=input('id');
        if($id==3){
            $this->error('初始化管理員不允許刪除!');
        }else{
            $result=db('admin')->delete($id);//返回影響的記錄條數
            if($result){
                 $this->success('刪除資料成功!','lst');
            }else{
                 $this->error('刪除資料失敗!');
            }
        }
        
    }