zoukankan      html  css  js  c++  java
  • Yii框架中使用mongodb扩展

    前提条件:安装了mongodb数据库

                  安装了mongo的php驱动

    下载Yii的mongo扩展:
    这是YiiMongoDbSuite的1.3.6版本
    支持PHP Mongo驱动的版本为1.0.5及以下

    下载链接:http://pan.baidu.com/s/1jGuWP1O

    其它版本下载链接:https://github.com/canni/YiiMongoDbSuite

    得到文件:YiiMongoDbSuite.tar.gz

    解包,并将该文件放至应用的/protected/extensions文件夹下面

    确保文件夹名称为:YiiMongoDbSuite

    配置应用

     1 vi /protected/config/main.php
     2 
     3 
     4 
     5  'import' => array(  
     6       ...  
     7       'ext.YiiMongoDbSuite.*',    // 插件根目录文件  
     8     ), 
     9 
    10     'components' => array(  
    11       ...  
    12       'mongodb' => array(  
    13         'class'            => 'EMongoDB', //主文件  
    14         'connectionString' => 'mongodb://127.0.0.1:27017', //服务器地址 
    15         'dbName'           => 'myDatabaseName',//数据库名称  
    16         'fsyncFlag'        => true, //mongodb的确保所有写入到数据库的安全存储到磁盘  
    17         'safeFlag'         => true, //mongodb的等待检索的所有写操作的状态,并检查  
    18         'useCursor'        => false, //设置为true,将启用游标  
    19       ),  
    20     ),  

    这样就配置好了,当然,请确保你的mongodb安装在本地,并且端口号是27107上面的配置才能连接得上。

    下面测试一下Model:

    将以下代码放至/protected/models/User.php里

     1 class User extends EMongoDocument
     2     {
     3       public $login;
     4       public $name;
     5       public $pass;
     6  
     7       // This has to be defined in every model, this is same as with standard Yii ActiveRecord
     8       public static function model($className=__CLASS__)
     9       {
    10         return parent::model($className);
    11       }
    12  
    13       // This method is required!
    14       public function getCollectionName()
    15       {
    16         return 'users';
    17       }
    18  
    19       public function rules()
    20       {
    21         return array(
    22           array('login, pass', 'required'),
    23           array('login, pass', 'length', 'max' => 20),
    24           array('name', 'length', 'max' => 255),
    25         );
    26       }
    27  
    28       public function attributeLabels()
    29       {
    30         return array(
    31           'login'  => 'User Login',
    32           'name'   => 'Full name',
    33           'pass'   => 'Password',
    34         );
    35       }
    36     }

    在控制器里测试一下

    $users = User::model()->findAll();
    var_dump($users);

    如果没有报错,那说明可以正常使用了。

  • 相关阅读:
    js--在页面元素上(移动到或获取焦点)、鼠标离开(或失去焦点)
    Oracle 树操作、递归查询(select…start with…connect by…prior)
    oracle 错误码查看命令oerr ora及常用错误码总结--不断更新
    Dbvisual连接远程数据库报错Error Code: 17401
    struts2 转发、重定向概述
    javascript array操作
    理解 Node.js 里的 process.nextTick()
    js的in运算符与instanceof运算符
    Javascript引擎单线程机制及setTimeout执行原理说明
    NodeJS错误处理最佳实践
  • 原文地址:https://www.cnblogs.com/yjken/p/3782216.html
Copyright © 2011-2022 走看看