1.yii分为basic(基础应用)和advanced(高级应用)两个版本,basic版本结构简单(适合学习框架或者适合只写一个应用),advanced版本分两个应用 一个叫frontend(前台) backend(后台,每个应用(App)就类似basic,适合学过yii的.

2.配置多个数据库连接:

  安装玩应用后,打开config/web.php,$config数组的components下有'db' => require(__DIR__ . '/db.php')引入数据库配置数组:

    

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=test',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

  在控制器中使用Yii:$app->db来获取db配置的数据库连接,那么如果我要配置另外一个数据库连接那就在components下写一个'testdb'=>数据库配置数组,同理Yii:$app->testdb来访问配置.

 

3.yii目前学到的数据库操作:

  如第二点里配置了数据库的连接信息,所以可以这样操作:

  Yii::$app->db#载入db数据库配置,获取默认数据库配置也可以用getDb()->createCommand($sql)->queryall();  这样就可以查出一列数据了.要临时建立数据库可以这样操作   $db = new \yii\db\Connection([

    'dsn' => 'mysql:host=$host;dbname=$db',
    'username' => '$user',
    'password' => '$password',
    'charset' => 'utf8',
  ]);

4.建立一个静态工具类:

基本版:在根目录下建立common文件夹,在common文件夹建立一个Help.php文件,代码如下:

<?php
//建立命名空间,指的是根目录下的common文件夹
namespace app\common;

class Help{

    public static function test() {

        echo '这是test方法的打印结果';
    }
}
?>

然后在要调用的控制器头部写入:use app\common\Help;意指调用common下的Help.php文件,然后在方法里调用Help::test()则可以调用方法,最后打印出字符串.

高级版:在根目录下的common文件夹下建立Help.php文件,然后在控制器里调用use common\tool\Help 意指在根目录下commone文件夹的tool文件夹下的Help类文件,其他同理.(如果要调用模块下的目录,就把common换成模块名).

如果要在Help类下使用数据库查询,要加一句use Yii;就可以连接数据库.

 

5.设置controller下的默认访问方法,定义public $defaultAction 属性即可,定义默认访问的controller则是:在web.php里定义'defaultRoute'=>'index'则默认为indexController;

6.设置的model类默认名字就是表名,如果要另外设置表名的话,定义方法:

public function tableName() {
      return 表名 ;     
}

 7.如果要继承一个公共控制器,并且公共控制器里做初始化工作的话,不要用__construct 会报错,应该是破坏了 框架里的某些初始化操作,要用init.

8.yii2.0里的session使用:

$session = Yii::$app->session;
//是否开启session(默认就是开启的,所以第一次是false,不知道是不是bug)
var_dump($session->isActive);
$session->set('aaaa', '123');
$session->close();
var_dump($session->get('aaaa'));

9.yii2.0里的cookie使用:

$cookies = Yii::$app->response->cookies;
$cookies->add(new \yii\web\Cookie([
            'name' => 'user_info',
            'value' => '123'),
        ]));
$cookies = Yii::$app->request->cookies;
$user_info = $cookies['user_info'];
echo $user_info;

 这里var_dump($user_info)是一个对象,echo 确是刚刚存的值.但是在另外一个action里就获取不到值了,那就要用到request组件了:

$cookies = Yii::$app->request->cookies;
$user_info = $cookies['user_info'];
echo ($user_info);

 10.yii2.0的页面跳转:

  $this->redirect(array("/login/index"));   login为控制器名   index为方法名   要往外网跳请加上完整的网址.

11.生成url

 \Yii::$app->urlManager->createUrl(['user/register' ]);//生成相对路径的url
 \Yii::$app->urlManager->createAbsoluteUrl(['user/register' ]);//生成绝对路径的url

posted on 2015-04-24 10:49  沉默的土豆  阅读(424)  评论(0编辑  收藏  举报