1.在view中的html静态页面引入js或cs时不是从所在的页面开始找而是从从入口文件index.php开始找的,
2.把全部要引入的js或cs文件所有放在public文件夹下,再把文件引入到当前页面的时候使用:php
传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用:html
找路径是从入口文件index.php来找的ajax
在存放JS和CSS的时候能够放到public文件夹下sql
以前是使用连贯操做:limit数组
而如今是想办法将以前的分页类page.class.php引入使用:session
page.class.php的命名空间:namespace Think\fenye;(其他不发生变化)函数
控制器里面写入:use Think\fenye\Page;ui
<?php namespace Home\Controller; use Think\Controller; use Think\fenye\Page; class ZhuceController extends Controller { public function FenYe() { $model = D("Nation"); $total = $model->count(); $page = new Page($total,1); $sql = "select * from Nation ".$page->limit; $attr = $model->query($sql); $xinxi = $page->fpage(); $this->assign("xinxi",$xinxi); //var_dump($attr); $this->assign("nation",$attr); $this->display(); } }
模板显示html代码:FenYe.htmlthis
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>分页信息显示</title> </head> <body> <h1>主页面</h1> <table width="50%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>名称</td> </tr> <foreach name="nation" item="v"> <tr> <td><{$v.code}></td> <td><{$v.name}></td> </tr> </foreach> </table> <div><{$xinxi}></div> </body> </html>
显示效果:url
在Home下新建文件夹fenye而后引入Page.class.php,其他不发生改变,效果是同样的
分页类里面的命名空间发生改变:namespace Home\fenye
控制器里面的的命名空间改变:use Home\fenye\Page
public function FenYe() { $model = D("Nation"); $total = $model->count(); $page = new \Home\fenye\Page($total,1); //方法2:分页类发生改变的时候 $attr = $model->limit($page->limit)->select(); $xinxi = $page->fpage(); $this->assign("xinxi",$xinxi); //var_dump($attr); $this->assign("nation",$attr); $this->display(); }
(1)url要变为MVC模式,指向的不是具体页面,是操做方法
(2)在操做方法里面返回值的时候,使用ajaxReturn()方法返回,注意返回类型,返回类型要和第二个参数一致
ThinkPHP能够很好的支持AJAX请求,系统的\Think\Controller类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端。而且支持JSON、JSONP、XML和EVAL四种方式给客户端接受数据,而且支持配置其余方式的数据格式返回。
显示效果:
系统提供了Session管理和操做的完善支持,所有操做能够经过一个内置的session函数完成,该函数能够完成Session的设置、获取、删除和管理操做。
若是session方法的第一个参数传入数组则表示进行session初始化设置,例如:
关闭自动启动后能够项目的公共文件或者在控制器中经过手动调用session_start
或者session('[start]')
启动session。
CheckController.class.php
<?php namespace Home\Controller; use Think\Controller; class CheckController extends Controller { //这个类要做为全部控制器的父类 function __construct() { parent::__construct(); if(!session('?uid')) { $this->error("未登陆",U("Login/Login")); } } }
更改MainController.class.php里面的命名空间:
namespace Home\Controller;
use Home\Controller\CheckController;
class MainController extends CheckController
这是不论访问MainController下的哪一个路径都只能到登陆
登陆的LoginController.class.php命名空间试过两种都是能够的:(与作法1是同样的)
1)
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller
2)
namespace Home\Controller;
use Home\Controller\CheckController;
class LoginController extends CheckController
改变
:
5.防止用户绕过登陆直接访问操做方法
作一个控制器的父类,在该父类里面写一个构造方法,构造方法里面判断session里面有没有值,若是没值。。。若是有值。。。