分页和文件上传

原创 2018-11-25 23:49:42 218
摘要:控制器代码://分页查询 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
老师总结:嗯!不错!作业内容写的是没毛病!下次记得要给代码加上高亮啊!

发布手记

热门词条