**YII** 系列四数据库访问

>学习过程中注意观察的内容:
命名规则


语法形式(符号的使用和一些常见的语法规则及意义)


变量和属性(继承的模板类的变量和属性名称固定可以尝试性记忆一下)


数和方法(继承模板类的函数和方法的原型课已通过网站找到,重要的可以记录一下)


约定和机制,搞懂数据库-模板-控制器-前端视图之间的联系。




>关于controller view和model的命名规则总结


controllers 文件名与类名相同,二者的控制器名称和controller都要大写


views 文件名没有要求可以有很多,  文件夹名与控制器同名,然后大小写没有要求,


model 文件名与类名相同,首字母都要大写。模板名必须与数据库名相同才可以


>建立数据库表模板

>>数据库表类与数据库表同名,二者自动建立连接,数据中的数组可以作为类的实例或者变量,类中的属性和方法可以对数据库进行直接操作。

//models/users.php

<?php
namespace app\models;
use yii\base\model;
use yii\db\ActiveRecord;
use yii;

//用同名函数覆盖掉不合法的方法
class users extends ActiveRecord{
    public static function tableName(){
        return "users";
    }
}

//actinverecord是数据库表类,这里继承了其中的属性和方法。变量来自于数据库。

>建立控制器类

>>主要负责数据库类的实例化

>>通过相应的模板类里的方法,对数据进行操作

>>将处理后的数据传回到前端index1.php进行渲染。

//Controllers/HoverController.php

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\users;
use yii\data\Pagination;

class HoverController extends Controller{

    public function actionIndex(){
        //$query = users::find();//find方法建立了一个,因为有多条记录匹配到find函数。所以这个对象是记录了的数组。
        $query = new users;
        $query = $query->find();
        $pagination = new Pagination(
            [
                'defaultPageSize'=>3,
                'totalCount'=>$query->count()
            ]
        );


        $user = $query -> orderBy('user_id')->offset($pagination->offset)->limit($pagination->limit)->all();
        return $this->render(
            'index1',
            [
                'user'=>$user,
                'pagination'=>$pagination
            ]
        );
    }

}
//单箭头想当于对变量使用方法进行操作,双箭头想当于对变量进行赋值
//var_dump()  PHP语句可以输出字符串
//$query实例化了数据库表类的一个对象,这个对象能匹配到整个表,然后对表进行操作。



>视图渲染

>>通过控制器类中的render函数,得到了数据,render函数的键值对名称是变量名称,值是变量的值。

>>输出,并调用小部件进行渲染视图。

>>了解了widget/LinkPager类中的属性和方法对页面进行操作。

//views/Hover/index1.php

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;


//foreach 是PHP中的循环语句
?>


<h1> user_table</h1>
<ul>
    <?php foreach($user as $val):?>
    <li>
        <?php echo $val->user_name;?>
    </li>
    <?php endforeach;?>
</ul>

<?= LinkPager::widget( ['pagination'=>$pagination])?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值