• 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);

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

  • 相关阅读:
    git 常用命令
    重要知识点
    HTML 标记语言
    js类型转换
    伪数组变数组 js
    在 JavaScript 中为什么 typeof null 的结果是 object?
    HTML中href、src区别
    解决for循环插入同一元素无法重复插入问题
    HTML5-语义化
    mount 和 /etc/fstab关系。
  • 原文地址:https://www.cnblogs.com/yjken/p/3782216.html
Copyright © 2020-2023  润新知