zoukankan      html  css  js  c++  java
  • Yii框架2.0 数据库操作初接触

    Yii2.0和Yii1.1版本的变动还是挺多的,我发现配置文件有许多不同,Yii1.1版本里有个main.php 好多信息是在这里配置的,比如默认控制器,数据库连接信息;Yii的数据库配置被单独拿出来,在config目录下的db.php文件里,格式到时基本一样。

    1 return [
    2 'class' => 'yiidbConnection',
    3 'dsn' => 'mysql:host=localhost;dbname=yii',
    4 'username' => 'php',
    5 'password' => 'php@master',
    6 'charset' => 'utf8',
    7 ];

     例如数据库里有个country的表,那么可以对应的添加一个country的model,其实是有好多的潜规则的。首先如果这个model和表的名字一样就不用做任何操作就可以,如果类名和数据表名不能直接对应,可以覆写 [[yiidbActiveRecord::tableName()|tableName()]] 方法去显式指定相关表名。

    1 namespace appmodels;2 
    3 use yiidbActiveRecord;4 
    5 class Country extends ActiveRecord {6     
    7 }

    然后就可以在控制器里调用数据了,初步接触几个获取表数据的方法。

     1 use appmodelsCountry;
     2 
     3 // 获取 country 表的所有行并以 name 排序
     4 $countries = Country::find()->orderBy('name')->all();
     5 
     6 // 获取主键为 “US” 的行
     7 $country = Country::findOne('US');
     8 
     9 // 输出 “United States”
    10 echo $country->name;
    11 
    12 // 修改 name 为 “U.S.A.” 并在数据库中保存更改
    13 $country->name = 'U.S.A.';
    14 $country->save();

    这里还有个分页的小工具(widgets)Pagination。在控制器里是这样使用的。

    1 $pagination = new Pagination([
    2             'defaultPageSize' => 5,//每页显示数目
    3             'totalCount' => $query->count(),//总条目数
    4 ]);

    在视图里是这样使用的。

    1 use yiiwidgetsLinkPager;
    2 echo LinkPager::widget(['pagination' => $pagination]);
  • 相关阅读:
    python报以下错误:TypeError: 'int' object is not subscriptable
    C# Func与Action
    C#调用C++的DLL 尝试写入受保护的内存
    C#调用C++的dll EntryPointNotFoundException
    C# 拖拽事件
    C#操作Access数据库中遇到的问题(待续)
    Winform 中写代码布局中遇到的控件遮盖问题
    thinkphp6执行流程(一)
    xdebug调试过程中apache500超时
    禁用phpcookie以后如何使用Session
  • 原文地址:https://www.cnblogs.com/wayne173/p/4372139.html
Copyright © 2011-2022 走看看