摘要:控制器代码://分页查询 public function demo2() { //分页配置 $config = [ 'type' => 'bootstrap', 'var_page' => 'page', ]; //每页数量 $num = 5; //是否是简单分页 $simple = false
控制器代码:
//分页查询
public function demo2()
{
//分页配置
$config = [
'type' => 'bootstrap',
'var_page' => 'page',
];
//每页数量
$num = 5;
//是否是简单分页
$simple = false;
//获取所有分页数据:返回值是分页对象: think\Paginate
$paginate = StaffModel::paginate($num, $simple, $config);
//渲染分页的HTML,返回分页变量
$page = $paginate->render();
//将分页对象赋值给模板
$this->view->assign('staffs', $paginate);
//将分页变量赋值给模板
$this->view->assign('page', $page);
//渲染模板
return $this->view->fetch();
//备注: tp51自带的分页功能很不灵活,更多时候,推荐使用自己写的分页类
}//文件上传
//1.渲染一个文件上传的表单
public function demo3()
{
return $this->view->fetch();
}
//2.处理文件上传
public function demo4()
{
//1.获取上传的文件信息(Request请求对象中的file(),返回文件对象think/File)
$file = Request::file('file');
//查看返回的文件对象
// halt($file);
//2.将文件从临时目录移到到服务器上的指定目录
if (is_null($file)) {
$this->error('没有选择任何文件');
}
// $fileInfo=$file->move('uploads');
//1M=1048576Byte,
$rule = ['size'=>2097152, 'ext'=>'jpg,jpeg,png,gif','type'=>'image/jpeg,image/png,image/gif'];
if($file->check($rule)) {
$fileInfo = $file->move('uploads');
$res = '<h3 style="color:green;">上传成功</h3>文件名是:'.$fileInfo->getSaveName();
} else {
$res = '<h3 style="color:red;">上传失败</h3>'.$file->getError();
}
return $res;
// return '上传成功';
}
模板代码
{load href="/static/bootstrap/css/bootstrap.css" /}
<div class="container">
<div class="row">
<h3 class="text-center">员工信息登记录</h3>
<div class="col-md-8 col-md-offset-2">
<table class="table table-bordered table-hover text-center">
<tr class="info">
<td>ID</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>工资</td>
</tr>
{//模板中的二种注释的区别:}
{//循环输出员工信息:源码中看不到}
<!--循环输出员工信息:源码中可以看到-->
{//一、foreach循环标签:类似于原生的foreach语句}
{//其实模板可以绕过控制器,直接获取数据}
{//assign标签可以在模板中直接定义变量}
{//assign name="staffs" value=":\app\index\model\Staff::all()" /}
{//name值的获取过程可以用助手函数model进行简化,这也是推荐的方式}
{//assign name="staffs" value=":model('staff')::all()" /}
{//1.基本用法: $staff是控制器或模板中的变量,$key与$value可自定义}
<!--
{foreach $staffs as $staff}
<tr>
<td>{//$staff.staff_id}</td>
<td>{//$staff.name}</td>
<td>{//$staff.sex}</td>
<td>{//$staff.age}</td>
<td>{//$staff.salary}</td>
</tr>
{/foreach}
-->
{//二、volist循环标签:使用最广泛,参数众多,功能强大}
{//1.基本用法:name="变量名,与控制器对应不可更改" id="循环变量,可自定义"}
{//volist name="staffs" id="staff"}
{//2.扩展用法_1:获取指定范围内的数据:offset="起始位置" length="记录数量"}
{//从索引3开始,获取5条,索引是从0开始计算,其实是从第4条开始输出5条}
{//volist name="staffs" id="staff" offset="3" length="5"}
{//3.扩展用法_2:获取偶数或奇数行的数据: mod="" 将索引进行模除后的结果}
{//volist name="staffs" id="staff" mod="2"}
{//当前索引除以2余数为1,说明为偶数行,例如第4条记录,索引为3,余数为1}
{//eq name="mod" value="1"}
{//思考: 如果想获取所有的奇数行数据,value应该等于多少? 答案:value="0"}
{//eq name="mod" value="0"}
<!--
<tr>
<td>{//$staff.staff_id}</td>
<td>{//$staff.name}</td>
<td>{//$staff.sex}</td>
<td>{//$staff.age}</td>
<td>{//$staff.salary}</td>
</tr>
-->
{///eq}
{///volist}
{//3.扩展用法_3:数据集合为空}
{//volist name="staffs" id="staff" empty="没有数据"}
{//这种用法很少见,实际开发过程,更多的是用empty标签进行处理}
{empty name="staffs"}
<h3 style="color: red;">当前没有符合条件的数据,请检查~~</h3>
{else /}
{volist name="staffs" id="staff"}
<tr>
<td>{$staff.staff_id}</td>
<td>{$staff.name}</td>
<td>{$staff.sex}</td>
<td>{$staff.age}</td>
<td>{$staff.salary}</td>
</tr>
{/volist}
{/empty}
{///volist}
</table>
</div>
</div>
</div>
{load href="/static/jquery/jquery-3.3.1.js" /}
{load href="/static/bootstrap/js/bootstrap.js" /}
{load href="/static/bootstrap/css/bootstrap.css" /}
<div class="container">
<div class="row">
<h3 class="text-center">员工信息登记录</h3>
<div class="col-md-8 col-md-offset-2">
<table class="table table-bordered table-hover text-center">
<tr class="info">
<td>ID</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>工资</td>
</tr>
{empty name="staffs"}
<h3 style="color: red;">当前没有符合条件的数据,请检查~~</h3>
{else /}
{volist name="staffs" id="staff"}
<tr>
<td>{$staff.staff_id}</td>
<td>{$staff.name}</td>
<td>
{//$staff.sex}
{//性别必须是0或1,才是合法数据}
{in name="staff.sex" value="0,1"}
{if $staff.sex == 0}
男
{else /}
女
{/if}
{/in}
</td>
<td>
{//$staff.age}
{//between标签的使用}
{between name="staff.age" value="20,30"}
很年轻嘛
{/between}
{between name="staff.age" value="31,50"}
人到中年
{else /}
快退休了
{/between}
</td>
<td>{$staff.salary}</td>
</tr>
{/volist}
{/empty}
</table>
<div class="text-center">{$page|raw}</div>
</div>
</div>
</div>
{load href="/static/jquery/jquery-3.3.1.js" /}
{load href="/static/bootstrap/js/bootstrap.js" /}
<h3>文件上传</h3>
<form action="demo4" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button>提交</button>
</form>
批改老师:韦小宝批改时间:2018-11-26 09:10:41
老师总结:嗯!不错!作业内容写的是没毛病!下次记得要给代码加上高亮啊!