thinkPHP5.0在PHP中的基本操作-------(一)
来源:互联网 发布:linux搭建文件服务器 编辑:程序博客网 时间:2024/05/21 11:30
一、访问路径的方式
在application\index\controller\index.php中添加如下方法,进新测试
function test($a,$b){ echo "test a 的值是$a,b的值是$b";}
1、 Get模式
http://localhost:端口号/根目录/thinkPHP包文件目录/public/index.php/模块名/控制器名/操作方法名?参数一=值一&参数二=值二......
2、 路径模式pathInfo
在操作方法中存在参数,在地址栏中写
http://localhost:端口号/根目录/thinkPHP包文件目录/public/index.php/模块名/控制器名/操作方法名/参数一/值一/参数二/值二......
3、 兼容模式
http://localhost:端口号/根目录/thinkPHP包文件目录/public/index.php?s=模块名/控制器名/操作方法名/参数一/值一/参数二/值二......
4、 重写模式—–通过URL重写隐藏入口文件
Apache的配置过程如下:
(1)httpd.conf配置文件中加载了mod_rewrite.so模块
(2)AllowOverride None 将None改为 All
(3)在应用入口文件同级目录添加.htaccess文件,内容如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
若为phpstudy环境,将上面代码中的最后一句修改为
RewriteRule ^(.*)$ index.php/$1 [L,E=PATH_INFO:$1]
(4)接下来就可以通过下面的方式访问了:
可以通过上面的前两种方式进行访问—-省略掉url中的入口文件index.php
二、 生成模块
1、手动代码添加模块
在thinkPHP5包目录下面的build.php文件中添加要加入的模块的设置代码,完全可以复制原文件中的demo示例代码,示例
// 定义test模块的自动生成 (按照实际定义的文件名生成)'test' => [ '__file__' => ['common.php'], '__dir__' => ['behavior', 'controller', 'model', 'view'], 'controller' => ['Index', 'Test', 'UserType'], 'model' => ['User', 'UserType'], 'view' => ['index/index'],],
然后在在入口文件public/index.php中添加执行build.php文件的代码:
//生成新模块$build = include '../build.php'; // 运行自动生成 \think\Build::run($build);
直接运行入口文件,就会自动生成模块以及下面的文件,可在application文件夹下面查看生成的新模块,如下图中的test文件夹及其子文件
2、命令行添加
若安装的是单一环境,需要在电脑的系统属性添加php文件的环境变量,否则cmd命令不能识别php命令,若定位到thinkPHP文件目录下,输入如下命令,执行成功即可
php think build --module test2
如下图:
在application中查看,如下多了一个模板test2
三、 通过控制器中的方法调用视图
视图文件一般都存放在application下面的模块文件下面的view文件夹下面,如果在controller文件夹下面有一个控制器文件index.php,那么index.php中方法里面所需要请求的所有模版文件就默认存放在view下面和控制器同名的文件夹index下面,新建自己的模版文件(thinkPHP5.0默认的是html文件)
1、 通过继承控制器父类的方法实现
相关代码如下
\think\ControllerClass xxxx extends Controller{ Function test(){ //如果无参数,那么默认就会找和当前方法同名的模版文件,也即是test.html return $this->fecth(); //有参数情况如下: return $this->fecth(“模版文件名(不带后缀)”); }}
2、 直接使用thinkPHP5.0提供的助手函数来加载页面
//如果无参数,那么默认就会找和当前方法同名的模版文件,也即是test.htmlreturn view();return view([“模版名”]);
助手函数调用格式:
view(’[模板文件]’[‘模板变量(数组)’][,模板替换(数组)])
3、 display和fetch方法的区别
http://miao.blog/article/thinkphp-fetch-display
Fetch用来显示模版文件
Display在模版中输出一些内容(字符串格式)
四、 定义修改路由
URL地址里面的index模块怎么才能省略呢,默认的URL地址显得有点长,通过路由可简化URL访问。
定义路由规则后,原来的URL地址将会失效,变成非法请求。
修改应用目录application下面的route.php,添加路由规则
1、 自定义无参路由
//访问test模块下面的test控制器中的test方法'a'=>"test/test/test",
访问的时候url:
修改路由之前:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/test/ test / test
修改路由之后:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/a
注:
特殊情况:控制器名称是由多个单词组成,使用驼峰命名法,例如UserType,正常访问index模块下面UserType控制器下面的test1方法,url的访问格式:
域名/项目根目录/thinkPHP的/public/index.php/index/user_type/test1
定义路由规则:
"e"=>"test2/user_type/test1",
访问的时候:
域名/项目根目录/tp5的目录/public/index.php/e
但是原来的访问路径仍然有效!!!
注意事项:定义路由规则的时候,如果是给Index模块下定义,则路由中可以省略到模块名,例如:
"h"=>"test/test4",
这表示会自动找Index模块下面的test控制器下的test4方法,如果是非Index模块,则需要完整的写完!
2、 必填参数路由
//必填参数为$j'b/:j'=>"test/test/test2",
修改路由之前:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/test/test/test2/j/1
修改路由之后:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/j/参数值
3、 可选参数路由
//可选参数为$k'c/[:k]'=>"test/test/test3"
修改路由之前:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/test/test/test3【/k/参数值】
修改路由之后:
http://localhost:port/项目根目录/thinkPHP的目录/public/index.php/k【/参数值】
4、 多个参数路由
控制器中的方法有多个参数,设置路由实例(假设index2方法有两个参数id和name):
"g/:id/:name"=>"test2/index/index2",
访问的模式:
域名/项目根目录/thinkPHP的目录/public/index.php/g/参数一的值/参数二的值
5、 动态更改路由
(1)使用Url::build()
Url::build('控制器名称/方法名', 【'参数名=值'】);
(2)使用助手函数:url():
url('控制器名称/方法名', 【'参数名=值'】);
- thinkPHP5.0在PHP中的基本操作-------(一)
- thinkPHP5.0在PHP中的基本操作-------(二)
- ThinkPHP5.0的基本CURD操作
- ThinkPHP5中的事务操作
- ThinkPHP5.0学习(一)
- thinkphp5.0学习(七):数据库操作
- ThinkPHP5 数据库操作-----之流程分析(一)
- thinkphp5.0学习(一):准备
- ThinkPHP5学习(8)数据库-基本操作
- thinkPHP5.0查询id在某个数组中的记录
- 在sqlplus中的基本操作
- [PHP]进阶教程:双引号和单引号在PHP中的区别以及字符串的基本操作
- Java中的多线程(一)关于线程的基本操作
- thinkphp5 权限问题(一)
- matlab在DSP中的应用(一)---基本函数
- redis在PHP中的基本使用案例
- redis在PHP中的基本使用案例
- Memcache 在PHP中的基本用法
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 串口通信方式2
- 税典通项目总结
- .net导入Excel 并显示进度条
- 用微信小程序开店之三——小程序还有5秒准备就绪……全军出击
- thinkPHP5.0在PHP中的基本操作-------(一)
- 获取Com实例
- 声音,音色
- 蚯蚓(NOIP2016 提高组 第二试 第二题,队列的应用)
- FastDFS安装、配置、部署(一)
- 聚类(1)——混合高斯模型 Gaussian Mixture Model
- 聚类(2)——层次聚类 Hierarchical Clustering
- build opencv extra module
- 字符串