您好,UncleToo欢迎您!  为了更好的浏览本站,请使用高版本浏览器
RSS  Tag     设为首页 | 加入收藏
 您所在的位置:首页 > PHP框架 > Yii Framework

yii框架:MongoDB 插件 YiiMongoDbSuite 使用方法

作者:未知  来源:转载  日期:2014-06-11 13:57:39
收藏  评论:( 0 )  阅读:1350

YiiMongoDbSuite下载地址: http://www.yiiframework.com/extension/yiimongodbsuite/

       本文介绍yii框架使用 mongodb 数据库插件 YiiMongoDbSuite 的用法,阅读之前请确认mongodb环境已经搭建好(具体方法请参考本站其他教程),并且YiiMongoDbSuite已经放在protected/extensions路径下,因此你protected/config/main.php 应该是这样的

'import' => array( 
      ... 
      'ext.YiiMongoDbSuite.*', 
    ), 
    'components' => array( 
      ... 
      'mongodb' => array( 
        'class'            => 'EMongoDB', 
        'connectionString' => 'mongodb://localhost', 
        'dbName'           => 'uncletoo', 
        'fsyncFlag'        => true, 
        'safeFlag'         => true, 
        'useCursor'        => false 
      ), 
    ),

然后根据你自己的环境稍加修改参数即可。

接下来开始写代码了看controller层代码, 注释部分为采用原生的写法类似于你使用Yii::app()->db来获取数据库连接一样

class LoginController extends Controller 
{ 
    //根据id查找用户例如 http://localhost:8082/api/login/UserList/415824043082514432 注:先配置好vhost 
    public function actionUserList($num) { 
        $_result = UserMongo::model()->findUser($num); 
        //$collection = Yii::app()->mongodb->getDbInstance()->selectCollection('pcztest'); 
        //$_result = $collection->find(); 
        $this->sendResponse(200, $_result); 
    } 
    // http://localhost:8082/api/login 
    public function doRestCreate($data) { 
        $model = new UserMongo(); 
        $model->ac = 'ac1'; 
        $model->bc = 'bc2'; 
        $res = $model->save(); 
        var_dump($res); 
    } 
}

然后是model代码

class UserMongo extends EMongoDocument 
{ 
    public $ac, $bc; 
    public static function model($className = __CLASS__) { 
        return parent::model($className); 
    } 
    public function getCollectionName() 
    { 
        return 'pcztest'; 
    } 
    // public function tableName() { 
        // return '{{passport_users}}'; 
    // } 
    public function findUser($n) { 
        $results = $this->findAll(); 
        return $results; 
    } 
}

       需要注意的问题:采用model调用save的方式保存跟原生insert保存区别不大,但是在查询时你的model层定义了那些属性只会查出相应的属性,而其他的则不会查出来,例如上面这个model只定义了$ac, $bc;2个属性若你再插入collection中一个字段‘ff’的话在查询时是不会显示出来的。




除非特别声明,本站所有PHP教程及其他教程/文章均为原创、翻译或网友投稿,版权均归UncleToo中文网所有, 转载请注明作者及出处。
原文网址:http://www.uncletoo.com/html/yii/985.html
读完这篇文章后,你是否有所收获? 分享是一种生活的信念!
  • 0
  • 0
我来说两句
更多>>网友评论