zoukankan      html  css  js  c++  java
  • Zend framework 开发总结1

    今天开始了自己的zf的开发之旅。

    今天碰到了不少问题,也仅仅完成了用户注册和登陆功能。还好都解决了。

    1、首先在数据库配置方面,在application/configs/appcation.ini下配置数据库

    [mysql]
    db.Adapter=MYSQL_PDO
    db.params.username=root
    db.params.password=root
    db.params.dbname=seeclass

    然后在需要调用的地方,我是在BaseController.php里面init调用的(用到数据库的控制器类的父类)。

     1     public function init()
     2     {
     3         /* Initialize action controller here
     4          * 初始化数据库适配器
     5          *  */
     6     $url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';
     7     $dbconfig=new Zend_Config_Ini($url,"mysql");
     8     $db=Zend_Db::factory($dbconfig->db);
     9     $db->query('SET NAMES UTF8');
    10     Zend_Db_Table::setDefaultAdapter($db);
    11         
    12     


    之后如果有用到数据库的控制器的地方,就可以直接调用BaseController.php的BaseController

    2、今天主要开发了UserController.php和User数据模型

    User.php
    <?php
    class UserModel extends Zend_Db_Table_Abstract{
        protected $_name="users";
    //     //创建用户
     public function createUser($userData){
          if(count($userData)>0){
            unset($userData['password2']);
            $userData['password']=md5($userData['password']);
            $userData['role']='user';
            $userData['status']=1;
            $userData['time_reg']=date('Y-m-d H:i:s');
            $userData['time_last']=date('Y-m-d H:i:s');
        //    print_r($userData);
        $newrow=$this->createRow($userData);//创建一个新行
         $newrow->save();
         //  $newrow->save();
         return $newrow->id;
        }else {
            return false;
        }
         }
     
     public function loginTime($id){
         $row=$this->find($id)->current();
      $row->time_last=date('Y-m-d H:i:s');
      $row->save();
     }
    }
    UserController.php
    <?php
    require_once 'BaseController.php';
    require_once 'forms/User.php';
    require_once APPLICATION_PATH.'/models/User.php';
    class UserController extends BaseController{
        
        public function registerAction(){
            $formRegister=new Form_user();
            $formRegister->removeElement('avatar');
            $formRegister->removeElement('status');
            $formRegister->removeElement('role');
            $formRegister->removeElement('profile');
            $this->view->formRegister=$formRegister;
            if($this->getRequest()->isPost()){
             if ($formRegister->isValid($_POST)){
                 
                 $userData=$formRegister->getValues();
                 $userModel=new UserModel();
                 $id=$userModel->createUser($userData);
                 echo $id;
                 
             }else{
                 exit('不合法') ;
             }
            }
        }
        
        public function loginAction(){
            $formLogin=new Form_user();
            $formLogin->removeElement('sex');
            $formLogin->removeElement('email');
            $formLogin->removeElement('avatar');
            $formLogin->removeElement('password2');
            $formLogin->removeElement('status');
            $formLogin->removeElement('profile');
            $formLogin->removeElement('role');
            $this->view->formLogin=$formLogin;
            
            if(!!$this->getRequest()->isPost()){
                if($formLogin->isValid($_POST)){
            $data=$formLogin->getValues();
    
        $db=Zend_Db_Table::getDefaultAdapter();
        $authAdapter=new Zend_Auth_Adapter_DbTable($db,'users','username','password');
             $authAdapter->setIdentity($data['username'])->setCredential(md5($data['password']));
    
        $result=$authAdapter->authenticate();
        if($result->isValid()){
            $auth=Zend_Auth::getInstance();
                $storage=$auth->getStorage();
            $storage->write($authAdapter->getResultRowObject(array(
                    'id','username','role')));
                $id=$auth->getIdentity()->id;
            $userModel=new UserModel();
    $userModel->loginTime($id);
    //             exit();    
         }else {
             $this->view->loginMessage="对不起,你的用户名或密码不符";
         }
            }
        }
        }
    }

     3/

    可以在model中定义几个查询的方法,这样在控制页中就可以轻松调用。如果查询条件过多(即数据表有多个查询字段)则可以使用array作为$where查询条件。

  • 相关阅读:
    区块链分布式云存储项目盘点
    区块链一定要知道的的七大认识误区
    以太坊“空块”数量激增有什么影响?
    区块链技术涉及哪些编程语言?
    一文读懂实用拜占庭容错(PBFT)算法
    清除浮动的影响
    滚动条
    分享侧栏例子
    最最最简单的轮播图(JQuery)
    3D动画
  • 原文地址:https://www.cnblogs.com/phplover/p/2977840.html
Copyright © 2011-2022 走看看