浅谈ThinkPHP(三)

实现商品的添加

1、在add.html页面中更改表单元素的名称

 

Goods控制器的add()方法中获取商品分类

 

在add.html中循环获取

 

2、设置提交的位置

 

3、添加商品代码参见GoodsController.class.php

方法一:

 

$this->redirect();也是跳转

方法二(用create创建数组):

create()的作用:

1、将表单元素的值和数据库中的字段一一匹配。

2、讲数据库中没有的字段在数组中去除。

 

PHP中添加的语法如下:

 

success()和error()方法是thinkphp自带的执行成功和失败的方法,可以用此方法来实现跳转。

方法三:

 

I()函数

I()用来获取get、post、sessioncookie等等的数据。

语法:I('变量的类型.变量的名称',[默认值],[过滤方法])

变量类型

描述

Get

获取get提交的参数

Post

获取POST提交的参数

param

自动判断是get还是post

request

获取request提交的数据

Session

获取会话的数据

Cookie

获取cookie数据

server

类似是$_SERVER[];

globals

获取$GLOBALS参数

path

获取pathinfo模式的url参数

用法:

描述

例题

获取get提交的name变量

I('get.name')

获取get提交的name变量并指定默认值

I('get.name','李白')

获取值后并调用函数处理数据

I('get.name',' ', mysql_real_escape_string,trim);

获取所有get提交的数据

I('get.')

此配置文件是默认的I的过滤参数

 

修改商品

update.html中添加隐藏域。

 

GoodsController.class.php页面中代码如下:

$this->success()中跳转的路径一定要用U()转换。

 

U方法

U()用来生成URL地址,配合“'URL_MODEL'             =>  0,”配置来使用,配置的值不同,生成的URL地址就不同

 

$this->sucess(),里面的路径一定要用U()方法来生成URL。

删除商品

HTML页面

 

在控制器中代码如下:

 

验证码

TP框架中自带了验证码类

位置:Think/verify.class.php

 

在LoginController控制器中创建生存验证码的方法

 

login.html登陆模板中

 

在LoginController控制器中判断验证码是否正确并且判断登陆是否成功

 

文件上传

用到的知识点:

1、文件上传的时候,要设置表单的enctype属性

 

2、$_FILE[名字][]用来接收文件的信息

第二维的字段:

         name

         size

         error

         type

         tmp_name

3、move_uploaded_file(临时文件,目标文件)

ThinkPHP自带了文件上传的类。位置:Think/Upload.class.php

 

生成缩略图

缩略图类存放的位置 ThinkImage.class.php

自定义工具类

在application文件夹下新建一个components文件夹,此文件夹中存放自定义的工具类。

在components文件夹下新建一个EmailTool.class.php文件

 

在控制器调用

 

TP中的session和cookie

session('name')                 获取名字是name的会话

session('name','李白');   将'李白'付给name会话

session('name',null);        清空name的会话

session(null);                      清空所有会话

------------------------------------

cookie('name')                   获取名字是name的cookie

cookie ('name','李白');    将'李白'付给name cookie

cookie ('name',null);         清空name的cookie

cookie (null);                       清空所有cookie

命名空间

当开发大型项目的时候,可以会需要成千上万的文件

面向对象通过命名空间来解决这个问题的。

PHP命名空间是PHP5.3以后才出现的。

命名空间中可以出现:类,函数,常量

只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。

命名空间是逻辑上的定义,逻辑的名称 不是物理上的路径

Tp中为了寻址的方便把命名空间做成地址

命名空间的声明和使用(namespace1.php)

 

命名空间的多级访问一(namespace2.php)

 

命名空间的多级访问二(namespace3.php)

 

空间元素访问的三种形式

1、非限定名称访问

         echo  getInfo()

         类似于:require  ('getinfo.php');

2、限定名称访问,是相对限定

         ChinagetInfo();

         类似于:requrie ('China/getInfo.php');

3、完全限定访问

         ChinagetInfo();

         类似于  requre ('c:Chinagetinfo.php');

引用命名空间(namespace4.php)

 

命名空间的注意事项:

1、最顶层的表示的是公共空间

2、namespace必须在最上面。

3、命名是虚拟的空间,不是真实存在的目录,但是ThinkPHP的命名空间是真实的地址路径。

4、当前文件中include具有命名空间的文件,不会改变当前文件的命名空间。

5、use有两个作用 引入命名空间  引入类

原文地址:https://www.cnblogs.com/Prinlily/p/9883212.html