现在位置:首页 » 包含标签 ThinkPHP 的所有文章
RBAC所用到的表
ThinkPHP的权限是基于用户组的。在本系统中RBAC Model(Role-based Access Model,基于角色的访问控制模型) 主要用到了5个数据表,分别是think_user (用户表)、think_role (用户角色表)、think_role_user (用户和用户角色的对应关系表)、think_node ...
当我们使用ThinkPHP时,我们往往会涉及到跨模块调用的问题,在ThinkPHP的官方文档中,为我们提供了A和R两个快捷方法的使用。A方法本媛暂未详细进行研究,在本文中侧重说明R方法的使用问题。
在官网上我们不难找到最新版本的在线手册(目前最新的版本是3.13)。
下面是官方上面的定义,R方法表示调用一个模块的某个操作方法。
调用格式是:
R('[项目://][分组/]模块/操作','参数','控制器层名称') 调用示例:
...
ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证。自动验证是基于数据对象的,而大多情况下数据对象是基于 $_POST表单 (不是绝对的)创建的。ThinkPHP的Model基类为我们定义了自动验证的函数和正则表达式,我们只需要在对应的数据库表的模型类下建立$_validate属性就可以了,下面介绍一下TP表单数据自动验证的功能。
语法如下:
protected $_validate = array(
...
在thinkPHP中最常见的分页往往出现在数据库查询结果集中,在 < 上文 中我们已经对此进行了介绍。假如我们现在数据集是在文件中存储的,而不是数据库中存储的,我们获取到的列表页如何实现分页呢?
我们这里主要借助于PHP自带的array_slice方法来进行数据分页。
下面请看一个实例:
test.text:
//数据源文件每行显示一个元素,请根据实际需求完成。
我喜欢低调
我喜欢慢慢渗透
我喜欢一点点的征服
一步...
通常我们在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页支持。分页类位于扩展类库下面,需要先导入才能使用。
ThinkPHP的分页方法通常有两种。
第一种分页方法是利用Page类和limit方法:
PHP代码
$User = M("User"); // 实例化User对象
import("ORG.Util.Page"); // 导入分页类
$count = $User->where("s...
一、带where条件的普通查询
1、字符串形式
$user=M('user');
$list=$user->where('id>5 and id<9')->select();
$list=$user->where($data)->select(); 2、数组形式
$user=M('user');
$list=$user->where(array('userna...
在 Thinkphp 模板引擎可以不需要赋值给某个模板变量而直接输出一些系统变量和系统常量、以及系统特殊变量。对于系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。
下面就分别做一下分享。
(1)系统变量:在模板中输出系统变量:包括server、env、session、post、get、request、cookie
{$Think.ser...
熟悉ThinkPHP都知道execute()和query()方法都可以在参数里直接输入SQL语句,不同的是execute()通常用来执行insert或update等SQL语句,而query常用来执行select等语句。execute()方法将返回影响的记录数,如果执行SQL的select语句的话,返回的结果将是表的总记录数。
下面举几个具体的例子说明一下:
$model=M("Table");
$result=$mod...
ThinkPHP中success、error方法的一个小Bug
Bug:
理论上使用$this->assign('closeWin',true);后,再调用success或error方法,提示显示完了之后窗口就会自动关闭,但某些浏览器却不能关闭窗口(比如谷歌浏览器)。
原因:
JavaScript代码不完善。
解决办法:
依次展开ThinkPHP目录下的Lib/Core,找到Action.class.php...
JQuery ThinkPHP Ajax简介
ThinkPHP 框架和客户端是完全分离的,没有任何的依赖,而服务端返回 ajaxReturn 方法也是通用的。在《ThinkPHP Ajax 使用详解及实例》一文中,讲述的是 ThinkAjax 类库结合 prototype 和 Mootools 来实现的 Ajax 。事实上可以使用任何 Js 类库来实现 ThinkPHP Ajax ,本文就用 JQuery 来实现《ThinkPHP A...
success/error 返回 Ajax 信息
本文作为《ThinkPHP Ajax 使用详解及实例》一文的补充说明,谈谈在服务端使用 success/error 方法返回 Ajax 提示信息的实现。
要使用 success/error 方法的 Ajax 返回,必须在参数内指定 ajax=true :
$this->success(message, true);
$this->error(message, tr...
ThinkPHP Ajax 实例源代码
以下列出 ThinkPHP Ajax 实例的完整源代码,您也可以 点击此处 下载完整的源代码压缩包。
Public/login.html 模板
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Conte...
ThinkPHP Ajax
ThinkPHP 内置了对 Ajax 的支持,可以方便的使用。下面以一个具体的例子来介绍 ThinkPHP Ajax 的使用。
说明
本文涉及的内容,适用于 ThinkAjax+Mootools 来实现 Ajax ,使用 JQuery 来实现 ThinkPHP Ajax 请查看《ThinkPHP JQuery Ajax》一文。
Js 类库
要使用 ThinkPHP Ajax,需要加载的 Js 类...
ThinkPHP 页面跳转
ThinkPHP 提供了 success 与 error 方法用于带提示信息的页面跳转,如添加数据后显示提示信息并跳转等。success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使用方法完全一致,下面以 success 方法来进行说明。
success 方法
success 方法语法如下:
success(message, ajax) 参数说明:
参数
说明...
URL 伪静态
ThinkPHP 支持伪静态 URL 设置,可以设置需要的 URL 后缀。编辑项目配置文件 Conf/config.php ,将 URL_HTML_SUFFIX 参数配置如下:
'URL_HTML_SUFFIX' => '.shtml', 删除 Runtime 目录下的项目缓存文件使配置生效后,在浏览器访问如下地址,效果一样:
http://127.0.0.1/html/myapp/index.p...
最近发现我们老大把我们的项目URL中的index.php去掉了,偶刚巧从官网上看到了教程,故在此也小卖弄一把。技术或许真的不是那么难,关键是掌握了技巧。
去掉 URL 中的 index.php
ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好。但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 ...
1、Table方法:定义要操作的数据表名称,可以动态改变当前操作的数据表名称,需要写数据表的全名,包含前缀,可以使用别名,例如:
$Model->Table('think_user user')->where('status>1')->select();
$Model->table('think_blog blog,think_type type')->where('blog.typeid=typ...