>学习过程中注意观察的内容:
命名规则
变量和属性(继承的模板类的变量和属性名称固定可以尝试性记忆一下)
>建立控制器类
命名规则
语法形式(符号的使用和一些常见的语法规则及意义)
变量和属性(继承的模板类的变量和属性名称固定可以尝试性记忆一下)
数和方法(继承模板类的函数和方法的原型课已通过网站找到,重要的可以记录一下)
约定和机制,搞懂数据库-模板-控制器-前端视图之间的联系。
>关于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])?>