<pre name="code" class="python">#
本节课大纲:
一、空模块和空操作
1、空操作
function _empty($name){
$this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>");
}
2.空模块
class EmptyAction extends Action{
function index(){
$city=M('City');
$arr=$city->select();
$this->assign('list',$arr);
$name=MODULE_NAME;
$this->display("City:$name");
}
}
二、前置操作和后置操作
1、前置操作: _before_操作名
2、后置操作: _after_操作名
方法代码重用:
类:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
$city=M('city'); //返回Model实例
//返回数组
$arr=$city->select();
//dump($arr);
$this->assign('list',$arr);
$this->display();
}
public function next(){
$this->display();
}
}
调用Index 控制器的index方法:
<?php
class CityAction extends Action{
function bj(){
// new一个对象
$oi=new IndexAction();
// 调用对象的方法
$oi->index();
}
function sh(){
$oi=new IndexAction();
$oi->index();
}
function gz(){
$oi=new IndexAction();
$oi->index();
}
function _empty($name){
$this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>");
}
}
?>
<!-- Login模块下的do_login处理 -->
<form action="__URL__/do_login" method='post'>
解析成:
<!-- Login模块下的do_login处理 -->
<form action="/thinkphp3/index.php/Login/do_login" method='post'>
///用户访问菜单页面,必须登录,判断用户是否登录
<?php
class LoginAction extends Action{
function index(){
$this->display();
}
public function do_login() {
$username=$_POST['username'];
$password=$_POST['password'];
$user=M('user');
$where['username']=$username;
$where['passord']=$password;
$c=$user->where($where)->count();
if ($c>0){
//向SESSION里写数据
$_SESSION['username']=$username;
$this->redirect('Index/index');
}else{
$this->error('用户不能登录');
}
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<!-- Login模块下的do_login处理 -->
<form action="__URL__/do_login" method='post'>
用户名:<input type='text' name='username'/><br/>
密码:<input type='password' name='password'/><br/>
<input type='submit' value='登录'/>
</form>
</body>
</html>
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function _before_index(){
//做判断,如果没有登录,跳转到登录页面
if(!isset($_SESSION['username']) || $_SESSION['username']=='')
{
$this->redirect('Login/index');
}
}
public function index(){
$city=M('city'); //返回Model实例
//返回数组
$arr=$city->select();
//dump($arr);
$this->assign('list',$arr);
$this->display();
}
public function next(){
$this->display();
}
}