夺命雷公狗---Thinkphp----11之管理员的增删改查的完善
由于我们刚才的帐号还没通过任何的验证就可以直接进入数据库了,这当然不是不合理的交互逻辑,所以我们要修改下,让他变得3合理一些,
所以我们还是要按照套路来修改几处即可解决问题:
首先修改下添加的控制器:

public function add(){
if(IS_POST){
$data['username'] = $_POST['username'];
$data['password'] = md5($_POST['password1']);
$da['password2'] = md5($_POST['password2']);
$mod = D('User');
if(!empty($data['password'])){
if($data['password'] == $da['password2']){
if($mod->create($data)){
if($mod->add($data)){
$this->success('添加用户成功',U('User/lists'));
}else{
$this ->error('添加用户失败');
}
//dump($);die;
}else{
$this -> error($mod->getError());
}
}else{
$this ->error('两次输入的密码不正确');
}
}else{
$this ->error('管理员密码不能为空');
}
}
$this -> display();
}
我们让模型来给我们判断下帐号是否存在,所以所以了大D,model里面的内容如下所示:

protected $_validate = array(
array('username','require','管理员帐号必须填写'), //默认情况下用正则进行验证
array('username','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一
);
然后再修改的edit里面再修改下即可:

public function edit(){
$id = I('id'); //获取id
$user = M('User') -> find($id);
$this -> assign('user',$user);
if(IS_POST){
$data['username'] = $_POST['username'];
$data['password'] = md5($_POST['password']);
$data['id'] = I('id'); //这id是从edit.html模版里发送过来的
$mod = D('User');
if($mod->create($data,1)){ //这里的1是表示在编辑时候进行验证
if($mod -> save()){
$this -> success('修改成功');
}else{
$this -> error("修改失败");
}
}else{
$this -> error($mod->getError());
}
}
$this-> display();
}
最后就是解决列表页的分页问题,我们只需要稍微的修改下问题即可解决
public function lists(){
//从数据库中取出数据
//$user = M('User') -> select();
//dump($user);die;
//分配数据到模版
//$this->assign('user',$user);
//$this -> display();
//1.显示分页工具条
$mod = M('User');
$totalRows = $mod->count();
//创建分页对象时,分页对象需要总记录数和分页条数
$page = new \Think\Page($totalRows,2);
$page -> rollPage =5; //分页列表上显示多少条
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
$page->setConfig('first','首页');
$page->setConfig('prev','上一页');
$page->setConfig('next','下一页');
$page->setConfig('last','尾页');
$pageHtml = $page -> show();//生成分页的连接诶效果(分页工具条的html代码)
$this -> assign('pageHtml',$pageHtml);//分配分页栏到模版
//2.查询出当前页面的列表数据
$user = $mod -> page(I('get.p',1),$page->listRows)->select();
$this -> assign('user',$user);
$this -> display();
}
让后在视图下让他直接遍历过来即可:

如果希望样式美观点,那么直接加多一个样式给他问题即可解决:

<style type="text/css">
.num{
padding-left:10px;
}
.current{
padding-left:10px;
color:blue;
font-weight:bold;
font-size:16px;
}
</style>
这样我们的问题即可解决啦,嘻嘻
夺命雷公狗---Thinkphp----11之管理员的增删改查的完善的更多相关文章
- 夺命雷公狗---Thinkphp----6之管理员的增删改查之-未验证
首先我们创建多一个控制器UserController.class.php,主要用于管理员的增删改查操作: 代码如下所示: <?php namespace Admin\Controller; us ...
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- 夺命雷公狗ThinkPHP项目之----企业网站11之栏目的删除完成
我们删除要在分类模型中添加一个_before_delete的钩子函数,而且在删除一个分类时候,如果这个分类有子分类就不允许删除 model层代码如下所示: <?php namespace Adm ...
- 夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)
我们的单页面里主要是为了可以取出文章分类表的栏目内容,废话先不说, 我们的实现要点: 1...获取get过来的栏目cate_id 2...然后用条件查询栏目表 <?php namespace H ...
- 夺命雷公狗ThinkPHP项目之----企业网站25之网站前台面包屑导航URL的完善
如果想取出面包屑导航的url那么就必须在model层里面进行多取一个了: <?php namespace Home\Model; use Think\Model; class CategoryM ...
- 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)
我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; ...
- 夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台
我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调 ...
- 夺命雷公狗—angularjs—11—service的基本概念
我们先来研究下service里面的四大服务.. value 变量 constant 常量 factory 工厂模式 service 服务 <!DOCTYPE html> <ht ...
- 夺命雷公狗ThinkPHP项目之----企业网站30之网站前台头部导航的高亮显示
我们这个其实也是最简单的一个,首页高亮,那么我们需要先在中间层里面定义一个index = false: 然后在首页控制器里面定义一个 index = true 最后一步就是 在首页的模版上给一个判断: ...
随机推荐
- httpclient提交json参数
private void httpReqUrl(List<HongGuTan> list, String url) throws ClientProtocolException, IOEx ...
- php保存远程文件到本地的方法
用到了ob_start();<?php header("Content-type:text/html charset=utf-8"); if(!empty($_POST['p ...
- IN和exists 之间的比较
IN和exists 之间的比较 NOT IN 和 NOT EXISTS之间的比较
- NSNumber,NSValue和NSData
我们在编码中,很多时候需要将C里面原生的数据封装成对象,这样可以用NSDictionary或者NSArray来存取访问.尤其是一些做适配的情况下,这种封装是不可避免的.Objective-C提供了不少 ...
- linux安装MySQL5.7.13(二进制|源码)
二进制和源码版本安装MySQL5.7.13,并简单介绍不同之处. 一.通用二进制部分 1.下载MySQL通用二进制软件包.[root@node1 ~]# wget http://120.52.72.2 ...
- 微信支付开发(4) 动态链接Native支付
关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpa ...
- 分享一个使用APICloud云数据库已上线的商城APP
本项目盈利模式依赖taobao模块实现淘宝闭环交易,发布销售淘宝联盟产品获取返佣.目前已在应用宝上线安卓版本,先上图. 源码在此: http://community.apicloud.com/bbs/ ...
- 如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等协议访问应用程序 .
原文:http://linder.iteye.com/blog/735435 简介 WebDAV (Web-based Distributed Authoring and Versioning)是 ...
- [MySQL] 变量(参数)的查看和设置
类似于Oracle的参数文件,MySQL的选项文件(如my.cnf)用于配置MySQL服务器,但和Oracle叫法不一样,在MySQL里, 官方叫变量(Varialbes),但其实叫参数也是可以的,只 ...
- SO_REUSEADDR
问题:Linux的服务器程序,关闭后马上启动,经常报错,说是端口已经被占用,不过稍等一会儿就可以启动了. 原来我们在调用closesocket把已绑定端口的socket关闭时,这个socket并没有立 ...