[Yii2笔记]003使用mongodb数据库 [ 技术分享 ]
说明
学习Yii Framework 2(易2框架)的过程是漫长的,也是充满乐趣的,以下是我学习Yii2框架时对官网英文资料(请参见原文网址)的代码实现,提供了较完整的代码,供你参考。不妥之处,请多多指正!
原文网址:
http://www.yiiframework.com/doc-2.0/guide-start-databases.html
http://www.yiiframework.com/doc-2.0/yii-mongodb-activefixture.html
https://docs.mongodb.com/
标题:使用mongodb数据库
//Gii,配置使用mongodb
文件位置:
D:\phpwork\yiiadv\advanced\common\config\main.php
源代码:
'modules'=>[
'gii' => [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.1.90'],
'generators' => [
'mongoDbModel' => [
'class' => 'yii\mongodb\gii\model\Generator'
]
],
],
],
测试
//mongodb数据库连接
报错信息:
/*
Invalid Configuration – yii\base\InvalidConfigException
Unknown component ID: db
*/
需要进行两处修改
一、数据库使用mongodb
文件位置:
D:\phpwork\yiiadv\advanced\common\config\main-local.php
源代码:
/*
//
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii',
'username' => 'yiiuser',
'password' => 'jkljl23asdf23oickxvzklqwer',
'charset' => 'utf8',
],*/
'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://dev:123456@localhost:27017/admin',
],
二、在程序中使用mongodb连接
文件位置:
D:\phpwork\yiiadv\advanced\common\models\User.php
源代码:
//将使用的db连接
//use yii\db\ActiveRecord;
//修改为mongodb连接
use yii\mongodb\ActiveRecord;
文件位置:
/models/Country.php
源代码:
<?php
namespace app\models;
use yii\db\ActiveRecord;
class Country extends ActiveRecord{
}
文件位置:
/controllers/CountryController.php
源代码:
<?php
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
class CountryController extends Controller{
public function actionIndex(){
$query=Country::find();
$pagination=new Pagination([
'defaultPageSize'=>5,
'totalCount'=>$query->count(),
]);
$countries=$query->orderBy('name')
->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('index',[
'countries'=>$countries,
'pagination'=>$pagination,
]);
}
}
文件位置:
/views/country/index.php
源代码:
<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Countries</h1>
<ul>
<?php foreach($countries as $country):?>
<li>
<?=Html::encode($country->name."(".$country->code.")")?>:
<?=$country->population?>
</li>
<?php endforeach;?>
</ul>
<?=LinkPager::widget(['pagination'=>$pagination])?>
测试
<?php
//运行:
http://localhost:8081/web/index.php?r=country%2Findex&page=1
//运行结果:
Countries
Australia(AU): 18886000
Brazil(BR): 170115000
Canada(CA): 1147000
China(CN): 1277558000
France(FR): 59225700
« 1 2 »
(全文完)
共 0 条回复
没有找到数据。
阿江
注册时间:2015-10-18
最后登录:2024-03-03
在线时长:186小时21分
最后登录:2024-03-03
在线时长:186小时21分
- 粉丝94
- 金钱16816
- 威望160
- 积分20276