Closed 1c7 closed 8 years ago
用了 M 方法 还测了 COOKIE SESSION
<?php
namespace Home\Controller;
use Think\Controller;
/*
数据库
CREATE TABLE user(
id int unsigned auto_increment,
name varchar(200),
age varchar(200),
birthday varchar(200),
primary key(id)
)DEFAULT CHARSET = "utf8";
INSERT INTO `user`(`name`, `age`, `birthday`) values(11001, 22002, 33002);
INSERT INTO `user`(`name`, `age`, `birthday`) values('哈哈', '不吃早餐', '黑鸭黑鸭');
*/
class HahaController extends Controller {
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/index
public function index(){
echo 'tell me why ,,oho...';
}
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/cookie_session
// Thinkphp Session: http://www.thinkphp.cn/document/137.html (全在里面)
// Cookies:
function cookie_session(){
cookie('asd','dsa');
// session('nice', 'really');
// 设置一个 session
// session('nice', null);
// 干掉一个 session
// session(null);
// 干掉所有 session
echo '------------------worked---------------';
}
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/display_all_session
function display_all_session(){
var_dump($_SESSION);
}
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/display_all_cookie
function display_all_cookie(){
var_dump($_COOKIE);
}
// 下面这些什么 Model_query 和 model_update 名字是随意的
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/Model_query
public function Model_query(){
// header("content:type/////")
echo 'this should work';
$user = M('user');
// 会去数据库里找对应的 user 表
// var_dump($user);
dump( $user->select());
// print_r($b);
// $a = $user->where('age > 1')->limit(2)->select();
// $a = $user->where('age > 1')->field('age')->limit(2)->select();
// var_dump($a);
// 输出所有数据
}
// 增
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/model_create
function model_create(){
$user = M('user');
$data['name'] = '测试哈哈哈哈223333333';
$data['age'] = '测试哈哈哈444422';
$user->data($data)->add();
echo '新增数据成功~';
}
// 改
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/model_update
function model_update(){
$user = M('user');
$user->name = 'ThinkPHP';
$user->email = 'ThinkPHP@gmail.com';
$user->where('id=1')->save(); // 根据条件更新记录
// 对于没有的字段也不会报错, 比如 email
echo 'update success';
}
// 删
// http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/model_del
function model_del(){
$user = M('user');
$user->where('id=2')->delete();
echo 'asdasd';
}
}
写于 2015-10-27 这里用的版本是 TP 3.2
重要概念
笔记
1. Application 目录一开始是空的,当你第一次访问之后就会自动生成 N 多文件夹和文件在里面
2. 读取配置用 "C" 函数(就1个字母)
3. 我们可以在自动生成的
Application/Home/Controller
目录下面找到一个
IndexController.class.php
文件,这就是默认的 Index 控制器文件。5. 新建 Contrller
在
Application\Home\Controller
下新建文件HahaController.class.php
然后文件内容是
现在访问
http://localhost/thinkphp_3.2.3_full/index.php/Home/Haha/index
可以看到 index.php 后面第一节是目录名,第二节是 Controller 名,第三节是方法名
6. 前置和后置操作指的是在执行某个操作方法之前和之后会自动调用的方法,不过仅对访问控制器有效。
7. 模板文件都在 Application/Home/View 目录里。
7. 在 Controller 里如何调用 View?
短答案:调用
$this->display();
即可,然后 TP 会去按照默认规则去对应目录里找对应文件长答案: 比如你现在在
HahaController.class.php
文件内容如下:
注意你是在 haha 控制器下面的 index() 方法里调用的
$this->display();
所以 TP 会找Application/Home/View/HAHA/index.html
可以看到控制器名字变成了目录,方法名变成了文件名。控制器名 -> 目录名 方法名 -> 文件名
(这个在我这边能用,文件夹大小写不重要)
9. GET POST 有三种方式
1. I 方法
http://www.thinkphp.cn/document/308.html
我们以GET变量类型为例,说明下I方法的使用:
支持默认值:
2. $this->_get("id")
如果没有就会是空
7. TP 有各种单字母方法
文件位置
ThinkPHP \ Common \ functions.php
E 方法 抛出异常 L 方法 获取和设置语言定义 T 方法 获取模板文件 N 方法 设置和获取统计数据 M 方法 实例化一个没有模型文件的Model D 方法 实例化模型类7. Cookie Session
4. Common 目录里有个 function.php
可以写一些公用的函数在里面,相同模块的控制器都能用。
文档里的相应位置:"模块化设计" Common模块是一个特殊的模块,是应用的公共模块,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php)。但Common模块本身不能通过URL直接访问,公共模块的其他文件则可以被其他模块继承或者调用。