Yii快速入门及Yii1与Yii2对比


1、数据库访问,如果直接用sql,需要采用绑定参数的方式。比较安全。

Yii1:

$con = Yii::app()->db;
$sql = "SELECT title, img from goods_pic where id = :id";
$command = $con->createCommand($sql)->bindParam(':id', $id);
$result = $command->queryRow();


2、快速区分Yii1和Yii2
Yii1:

Yii::app()

Yii2:

Yii::$app()


3、使用日志
Yii1:

Yii::log($query,  CLogger::LEVEL_ERROR, $category = 'application');

Yii2:

use yii\log\Logger;
Yii::getLogger()->log($message, Logger::LEVEL_ERROR, $category = 'application');

查看日志在这个文件:

protected/runtime/application.log


关于日志的配置:

'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning',//,info,trace
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),


记录数据库执行日志:

'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning, trace',//,info,trace
                ),

                // 记录数据库日志
                array(
                    'class' => 'CWebLogRoute',
                    'levels' => 'trace', //级别为trace
                    'categories' => 'system.db.*' //只显示关于数据库信息,包括数据库连接,数据库执行语句
                ),

                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),

 


4、Controller的调用时的区别

比如controller文件名为AbcUsersController.php
函数为actionIndex

Yii1:

index.php?r=abcUsers/index&page=1

 

Yii2:

index.php?r=abc-users/index&page=1

对应的view下的目录也类似。需要命名为abc_users。






posted @ 2017-05-08 18:47  北里闻箫  阅读(3237)  评论(0编辑  收藏  举报