夺命雷公狗---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 最后一步就是 在首页的模版上给一个判断: ...
随机推荐
- Wordpress更改后台地址
wordpress默认的后台地址是 xx/wp-admin 或xx/wp-login.php ,谁都知道感觉很不安全, 方法一:使用插件 通过插件在地址上加上只有你知道的参数才能访问 1.后台搜索插 ...
- 探讨mvc下linq多表查询使用viewModel的问题
最近在开发mvc3的时候发现了一个问题,就是如何在view页面显示多表查询的数据,最简单的办法就是使用viewmodel了,以下本人使用viewmodel来实现多表查询的3中方法, 先贴代码再说: 1 ...
- [LeetCode]题解(python):034-Search for a Range
题目来源 https://leetcode.com/problems/search-for-a-range/ Given a sorted array of integers, find the st ...
- npy in c
https://jcastellssala.com/2014/02/01/npy-in-c/
- ubuntu网络配置
本文介绍ubuntu中的网络配置方法. ubuntu需要在/etc/network/interfaces文件中设置网络配置,基本的格式如下: auto <网卡名> iface <网卡 ...
- 添加gogs服务后 web丢失样式问题
暂时的解决办法
- [BS-10] 统一设置app所有页面的“返回”按钮样式
统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...
- Java 对象内存分配与回收
JVM内存区域模型: * 程序计数器,内存区域极小,是当前线程的字节码执行行号指示器: * 虚拟机栈.本地方法栈,即平时所说的“栈”,是虚拟机用来执行方法(包括Java.非Java方法)时,使用的临时 ...
- 三层交换机+二层交换机配置VLAN相互访问
使用思科模拟软件Cisco Packet Tracer Student,软件功能有限,只能架设简单的网络架构,适合初学者使用.
- iOS -Swift 3.0 -String(字符串常规用法)
// // ViewController.swift // Swift-String // // Created by luorende on 16/9/10. // Copyright © 2016 ...