摘要:一.foreach循环标签 双标签,类似于原生foreach,用来遍历模板变量数组的{foreach $staffs as $staff} <tr> <td>{$staff.staff_id}</td>
一.foreach循环标签
双标签,类似于原生foreach,用来遍历模板变量数组的
{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}二.assign标签 在当前模板中创建变量,来保存数据表中的数据 value为变量的值,执行一个方法要在前面加:
{assign name="staffs" value=":\app\index\model\Staff::all()"}
{//用助手函数来简化}
{//assign name="staffs" value=":model('staff')::all()"}三.volist标签,使用最广泛的,参数众多,功能强大 双标签也是遍历输出 name传入模板的变量 id循环的变量 offset偏移值(从哪个索引开始) length显示条数
{volist name="staffs" id="staff" offset="3" length="5"}
<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标签判断是否为空 双标签
{empty name="staffs"}
<h3 style="color: #761c19;">当前数据表为空,请检查数据</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}四.数据分页 运用模型类中的paginate方法来实现 默认bootstrap
1.paginate(每页显示数量,是否是简单分页,分页配置) 返回一个分页对象
2.render()方法返回一个分页变量
//分页设置
$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();五.文件上传(***出现问题了***)
1.文件上传时use think\facade\Request 静态代理之后,使用Request::file('file')来获取上传的文件信息
//1.获取文件的信息
$file = Request::file('file');
/****************问题在这 空文件上传继续报错,不回执行下面这段,还有文件过大也是直接报错 *******************/
if(is_null($file)){
$this->error('空文件上传');
}
/************曾经试过如下这样,但是文件过大不行,文件过大打印$_FILES['file']['size']也为0************/
if($_FILES['file']['size'] === 0){
$this->error('空文件上传');
}
if($_FILES['file']['size'] > 20000000){
$this->error('文件过大');
} 2.移动文件到服务器上的指定目录:public/uploads,并限定格式
//如果上传成功返回的是一个已经复制的文件对象,失败返回false,将文件移动到uploads文件夹中,调用文件对象的validate方法进行格式限制
$res = $file->validate(['ext'=>'jpg,jpeg,gif,png'])->move('uploads'); 3.确定是否上传成功,做出回应
if($res == false){
$this->error($file->getError());
}
$this->success('上传成功');请老师帮忙解答一下
**************************************************************修改******************************************************************
通过查看手册发现 validate(['size'=>200000,'ext'=>'jpg,jpeg,gif,png']) 添加size,在加上$_FILES['file']['size'] === 0 的判断,然后修改一下php.ini的upload_max_filesize的大小 将size的大小设置小于 php.ini的设置,即可解决这个问题了,不知道这么做是否可以?
批改老师:韦小宝批改时间:2018-12-20 11:12:15
老师总结:你先尝试一下,手册讲的这种去修改一下!如果还报错就直接私聊我!