6月11日,晴天。“梅子留酸软齿牙,芭蕉分绿与窗纱。日长睡起无情思,闲看儿童捉柳花。”
十、后台编写-续-2
1、改写login模块的login方法 ,主要是改m方法为d方法
assign ( 'title', '后台管理系统' ); $this->display (); } // 用户登录页面 function login() { header ( content-type:text/html; charset=utf-8 ); $username=$_post['username']; $password=md5($_post['password']); $user = d ( user ); // 参数的user必须首字母大写,否则自动验证功能失效! if (! $user->create ()) { $this->error ( $user->geterror () ); } else { // 查找输入的用户名是否存在 if ($user->where ( username ='$username' and password = '$password' )->find ()) { session ( username, $username ); $url = u ( '/index/index/username/' . $username ); redirect ( $url, 5, '跳转中...' ); } else { $this->error ( '用户名或密码错误' ); } }}
其中,$user = d('user');表示实例化user模型,会导入当前项目下面的lib/model/usermodel.class.php文件,然后实例化usermodel类,所以,实际上的代码可能和下面的等效:
import('@.model.usermodel'); $user = new usermodel();
之后,create() 创建数据对象后,将自动收集提交过来的表单数据。在将表单写入数据表之前,常常会有一些对数据的检测(提交的用户名是否符合要求)与处理(如例子中的验证码的比对)。create() 方法就支持数据的自动验证与自动完成。 一般情况下,使用 m 方法实例化模型时,是无法实例化自定义模型类的,也就无法使用自动验证与自动完成功能,因此建议使用 d 方法来实例化模型类。
2、编写自定义user模型类admin/lib/model/usermodel.class.php
15 || strlen($data)
验证规则的定义是统一的规则,定义格式为:array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );
说明
验证字段:(必须)需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如expire有效期规则是和表单字段无关的。如果定义了字段映射的话,这里的验证字段名称应该是实际的数据表字段而不是表单字段。
验证规则:(必须)要进行验证的规则,需要结合附加规则,如果在使用正则验证的附加规则情况下,系统还内置了一些常用正则验证的规则,可以直接作为验证规则使用,包括:require 字段必须、email 邮箱、url url地址、currency 货币、number 数字。
提示信息:(必须)用于验证失败后的提示信息定义
验证条件:(可选)包含下面几种情况:
model::exists_validate 或者0 存在字段就验证(默认)
model::must_validate 或者1 必须验证
model::value_validate或者2 值不为空的时候验证 3、编写数据库表think_news
create table `think_news` ( `id` int(11) not null auto_increment, `author` int(11) not null, `subject` varbinary(256) not null, `createtime` int(11) not null, `lastmodifytime` int(11) not null, `message` mediumtext not null, primary key (`id`)) engine=myisam default charset=utf8;
5 、修改admin\tpl\index\index.html
修改编辑新闻按钮如下:
编辑新闻 其中,'__public__'表示站点公共目录,'__url__'表示当前模块的url地址
6、在admin\lib\action\indexaction.class.php中添加函数 news
function news(){ //跳转到news控制器的index方法 redirect(u('/news/index'),0, '编写新闻'); }
以上就介绍了第五天 thinkphp手把手快速拼接网站(五),包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。