阿江 2017-09-28 17:22:59 4848次浏览 0条回复 1 1 0

说明

学习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    »

(全文完)

觉得很赞
    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册