tp5怎么在控制器里面tp获取当前控制器配置文件的某个数组

TP5路由和请求参数的整理_陈文超前端博客-专注Web前端制作与关注IT运维技术的个人博客网站
TP5路由和请求参数的整理
来源纪要:自从老板们发现了,微信小程序的存在,做了几个静态页面丢上,但是最主要的还是功能点的实现,在我司里,没有后台开发的情况下,做小程序,基本就只能写点效果和微信自带的功能板块与静态页面布局呀,无法实现后台的请求接口,虽然说,服务器,ssh什么的,都有点尿水,但是在没有后台实现接口的情况下,我还是无法完成这个重大的使命,但是这也不是我应该去找的借口,然而,我能做的就是学会它,因此就有了以下的内容。在此感谢骨科医院给了充分的学习时间路由注册的方法Route::rule('路由表达式','路由地址','请求类型','路由参数','变量规则(数组)');use&think\R&&//定义申明
Route::any('chao','sample/Test/hello',['method'=&'get']);如果不希望一个个注册,可以使用批量注册,规则如下:Route::rule([
'路由规则1'=&'路由地址和参数',
'路由规则2'=&['路由地址和参数','匹配参数(数组)','变量规则(数组)']
],'','请求类型','匹配参数(数组)','变量规则');简单写法//get&,&post&,&*(any)
Route::post('hello','sample/Test/hello&');
Route::get();
Route::any();获取请求参数方式一:/:id 在路由表达式后面加上参数名称Route::any('chao/:id','sample/Test/hello',['method'=&'get']);路由配置use&think\R
Route::any('chao/:id','sample/Test/hello');参数接口配置public&function&hello($name,$id,$me)
return&'nihao';
}方式二,引入Request库参数接口配置use&think\R//先添加Request库
public&function&hello($name,$me)
&&$id&=&Request::instance()&-&&param(&id&);
#获取说有的参数数组
//$all&=&Request::instance()&-&&param(&&);
&&&&&&&&return&'nihao';
&&&&}只获取问号里面的参数&&$id&=&Request::instance()&-&&get(&id&);只获取l路径id里面的参数&$id&=&Request::instance()&-&&route(&id&);只获取lbody里面的参数&$id&=&Request::instance()&-&&post(&id&);
[日志信息]
17:03 由 陈文超 发表在
网站下,你除了可以发表评论外,还可以转载 “TP5路由和请求参数的整理” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!
(尊重他人劳动,你我共同努力)
[相关日志]tp5命令行基础介绍
时间: 17:09:48
&&&& 阅读:617
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
查看指令 生成模块 生成文件 生成类库映射文件 生成路由缓存文件 生成数据表字段缓存文件 指令扩展示例 命令行调试 命令行颜色支持 调用命令 查看指令
命令行工具需要在命令行下面执行,请先确保你的php.exe已经加入了系统环境变量Path。 应用的命令行入口文件是应用根目录的think文件,其内容如下:// 定义项目路径
define(‘APP_PATH‘, ‘./application/‘);
// 加载框架命令行引导文件
require ‘./thinkphp/console.php‘;
你也可以自定义think文件,更改应用目录。
要执行命令,首先进入命令行,并切换当前目录到应用的根目录(也就是think文件所在目录)下面,执行:php think
会显示当前支持的所有指令:&php think
Think Console version 0.1
command [options] [arguments]
-h, --help
Display this help message
-V, --version
Display this console version
-q, --quiet
Do not output any message
Force ANSI output
Disable ANSI output
-n, --no-interaction
Do not ask any interactive question
-v|vv|vvv, --verbose
Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
Build Application Dirs
Displays help for a command
Lists commands
make:controller
Create a new controller class
make:model
Create a new model class
optimize:autoload
Optimizes PSR0 and PSR4 packages to be loaded with classmaps too, good for production.
在win10的周年版中运行会出现乱码,请使用PowerShell运行。
使用&php think list
可以获得相同的结果。
如果输入一个不存在的指令,系统会自动搜索相关的指令并提示,例如:&php think make
下面我们给应用生成一个新的模块test,首先需要在application目录下面创建一个build.php定义文件,文件内容如下:return [
// 定义test模块的自动生成
‘test‘ =& [
‘__dir__‘
=& [‘controller‘, ‘model‘, ‘view‘],
‘controller‘ =& [‘User‘, ‘UserType‘],
=& [‘User‘, ‘UserType‘],
=& [‘index/index‘, ‘index/test‘],
然后在命令行下面,执行:&php think build
如果显示Successed则表示生成成功。
注意,命令行指令是区分大小写的,所以如果执行&php think Build
我们可以看到application目录下面已经生成了一个test模块目录,包括下面的子目录及文件:test
├─controller
├─Index.php
├─User.php
└─UserType.php
├─User.php
└─UserType.php
├─index.html
└─test.html
├─common.php
└─config.php
接下来,我们可以访问/test/
我们在build.php文件中并没有定义Index控制器,但仍然生成了一个默认的Index控制器文件以及欢迎页面,这是为了避免模块访问出错。
还可以用make指令单独生成某个应用类库文件,例如:php think make:controller test/Blog
会自动为test模块生成一个 Blog控制器文件。
注意,默认生成的控制器类是属于资源控制器,并且继承了\think\Controller。
如果希望生成一个空的控制器,可以使用php think make:controller test/Blog --plain
又或者生成一个模型文件php think make:model test/Blog
生成类库映射文件
在生成类库文件之后,我们强烈建议使用命令行生成类库映射文件,可以提高自动加载的性能,用法如下:&php think optimize:autoload
执行完毕,会在RUNTIME_PATH目录下面生成一个classmap.php文件,包括了系统和应用的所有类库文件的映射列表。
生成路由缓存文件
如果你的应用定义了大量的路由规则,那么建议在实际部署后生成路由缓存文件,可以免去路由注册的开销,从而改善路由的检测效率,用法如下:&php think optimize:route
执行完毕,会在RUNTIME_PATH目录下面生成一个route.php文件,包括了应用的所有路由规则定义列表。
路由缓存文件只会缓存在application/route.php文件中配置和动态注册的路由规则,因此请确保你没有在其它的文件中进行路由的注册。
生成数据表字段缓存文件
如果你希望提高查询的性能,可以通过生成字段缓存来减少查询。用法如下:&php think optimize:schema
执行完毕,会在RUNTIME_PATH目录下面创建schema目录,然后在该目录下面按照database.table.php的文件命名生成数据表字段缓存文件。
也可以指定数据库生成字段缓存(必须有用户权限),例如,下面指定生成demo数据库下面的所有数据表的字段缓存信息。php think optimize:schema --db demo
还可以读取模块的模型类来生成数据表字段缓存(这个适合多数据库连接的情况),如下:php think optimize:schema --module index
会读取index模块的模型来生成数据表字段缓存。
如果模型类没有继承think\Model或者是抽象类的话,不会生成对应模型的字段缓存。
更新数据表字段缓存也是同样的方式,每次执行都会重新生成缓存。如果需要单独更新某个数据表的缓存,可以使用:php think optimize:schema --table think_user
支持指定数据库名称php think optimize:schema --table demo.think_user
指令扩展示例
命令行的作用远不止生成文件这么简单,同时应用也可以很方便的扩展自己的指令,我们来扩展一个用于清理缓存目录的指令clear。
最新版本已经内置clear指令了,下面的示例可以直接使用内置的clear指令进行学习和测试。
首先,我们创建一个指令类 app\console\Clear,内容如下:&?php
namespace app\
use think\console\C
use think\console\I
use think\console\input\O
use think\console\O
class Clear extends Command
protected function configure()
// 指令配置
-&setName(‘clear‘)
-&addOption(‘path‘, ‘d‘, Option::VALUE_OPTIONAL, ‘path to clear‘, null)
-&setDescription(‘Clear runtime file‘);
protected function execute(Input $input, Output $output)
= $input-&getOption(‘path‘) ?: RUNTIME_PATH;
$files = scandir($path);
if ($files) {
foreach ($files as $file) {
if (‘.‘ != $file && ‘..‘ != $file && is_dir($path . $file)) {
array_map(‘unlink‘, glob($path . $file . ‘/*.*‘));
} elseif (is_file($path . $file)) {
unlink($path . $file);
$output-&writeln("Clear Successed");
一个合法的指令类,没有固定的目录和命名空间要求,但必须继承think\console\command\Command或者其子类,并且定义configure和execute两个方法。
然后,在application目录下面的command.php(如果不存在则创建)文件中添加如下内容:return [
‘\app\console\Clear‘,
表示给应用增加一个命令行Clear指令,我们可以用list指令来验证是否已经成功注册Clear指令:&php think list
运行后如果看到
表示指令注册成功,接下来可以测试下该指令:&php think clear
Clear Successed
该指令并不会删除目录,仅仅删除目录下面(包括子目录)的文件。
clear指令还定义了一个--path参数用于指定目录,下面是一个指定目录删除文件的用法,我们仅仅需要删除日志文件:&php think clear --path d:\www\tp5\runtime\logClear Successed
--path参数还有一个简化用法-d&php think clear -d d:\www\tp5\runtime\logClear Successed
命令行调试
命令行一旦执行错误,只能看到简单的错误信息,如果需要调试详细的Trace信息,可以使用 -v 参数来显示,例如:假设Clear指令文件中使用了一个未定义的变量pathp,那么我们可以使用&php think clear
会显示如下错误:
我们需要查看具体的Trace信息,可以使用&php think clear -v
会看到类似下面的错误信息:
命令行颜色支持
为了让命令行工具更加有趣,think命令行支持颜色输出,并且内置了几种颜色样式,还可以自己自定义颜色样式输出。
windows下面命令行颜色输出支持需要windows 10.0.10580以上版本支持
我们添加一个color指令用于演示颜色输出效果,代码如下:&?php
namespace app\
use think\console\command\C
use think\console\I
use think\console\O
use think\console\output\formatter\S
class Color extends Command
protected function configure()
-&setName(‘color‘)
-&setDescription(‘Show Color text‘);
protected function execute(Input $input, Output $output)
// 输出info样式
$output-&writeln("&info&this is info&/info&");
// 输出error样式
$output-&writeln("&error&this is error&/error&");
// 输出comment样式
$output-&writeln("&comment&this is comment&/comment&");
// 输出question样式
$output-&writeln("&question&this is question&/question&");
// 输出highlight样式
$output-&writeln("&highlight&this is highlight&/highlight&");
// 输出warning样式
$output-&writeln("&warning&this is warning&/warning&");
// 输出混合样式
$output-&writeln("this is &info&info&/info&, this is &error&error&/error&,this is &comment&comment&/comment&,this is &question&question&/question&,this is &highlight&highlight&/highlight&, this is &warning&warning&/warning&");
// 自定义输出样式
$output-&getFormatter()-&setStyle(‘custom‘, new Style(‘black‘, ‘white‘));
$output-&writeln("&custom&this is style&/custom&");
command.php定义修改如下:return [
‘\app\console\Clear‘,
‘\app\console\Color‘,
然后执行下面的指令:&php think color
运行后就可以看到:
在代码里面可以直接调用执行命令行的某个命令,例如:namespace app\index\
use think\C
class Index
public function index()
// 调用命令行的指令
$output = Console::call(‘make:model‘,[‘index/Blog‘]);
return $output-&fetch();
Console::call方法的第一个参数就是指令名称,后面的第二个参数是一个数组,表示调用的参数。如果我们要创建一个demo模块的话,应该是:Console::call(‘build‘,[‘--module‘, ‘demo‘]);
页面会输出Model created successfully.
可以在application/index/model/目录下面发现已经生成了一个Blog模型文件。
当我们再次刷新页面的话,会看到页面输出Model already exists!
表示模型已经创建过了,无需再次创建。
使用Console::call方法调用指令执行不会看到最终的输出结果,需要使用fetch方法获取输出信息,一旦发生错误,则会抛出异常。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!posts - 2,&
comments - 0,&
trackbacks - 0
load_trait:快速导入Traits,PHP5.5以上无需调用
&*&快速导入Traits&PHP5.5以上无需调用
&*&@param&string&&&&$class&trait库
&*&@param&string&&&&$ext&类库后缀
&*&@return&boolean
load_trait($class,&$ext&=&EXT)
exception:抛出异常处理
&*&抛出异常处理
&*&@param&string&&&&$msg&&异常消息
&*&@param&integer&&&$code&异常代码&默认为0
&*&@param&string&&&&$exception&异常类
&*&@throws&Exception
exception($msg,&$code&=&0,&$exception&=&'')
debug:记录时间(微秒)和内存使用情况
&*&记录时间(微秒)和内存使用情况
&*&@param&string&&&&&&&&&&&&$start&开始标签
&*&@param&string&&&&&&&&&&&&$end&结束标签
&*&@param&integer|string&&&&$dec&小数位&如果是m&表示统计内存占用
&*&@return&mixed
debug($start,&$end&=&'',&$dec&=&6)
lang:获取语言变量值
&*&获取语言变量值
&*&@param&string&&&&$name&语言变量名
&*&@param&array&&&&&$vars&动态变量值
&*&@param&string&&&&$lang&语言
&*&@return&mixed
lang($name,&$vars&=&[],&$lang&=&'')
config:获取和设置配置参数
&*&获取和设置配置参数
&*&@param&string|array&&$name&参数名
&*&@param&mixed&&&&&&&&&$value&参数值
&*&@param&string&&&&&&&&$range&作用域
&*&@return&mixed
config($name&=&'',&$value&=&null,&$range&=&'')
input:获取输入数据,支持默认值和过滤
&*&获取输入数据&支持默认值和过滤
&*&@param&string&&&&$key&获取的变量名
&*&@param&mixed&&&&&$default&默认值
&*&@param&string&&&&$filter&过滤方法
&*&@return&mixed
input($key&=&'',&$default&=&null,&$filter&=&null)
widget:渲染输出Widget
&*&渲染输出Widget
&*&@param&string&&&&$name&Widget名称
&*&@param&array&&&&&$data&传入的参数
&*&@return&mixed
widget($name,&$data&=&[])
model:实例化Model
&*&实例化Model
&*&@param&string&&&&$name&Model名称
&*&@param&string&&&&$layer&业务层名称
&*&@param&bool&&&&&&$appendSuffix&是否添加类名后缀
&*&@return&\think\Model
model($name&=&'',&$layer&=&'model',&$appendSuffix&=&false)
validate:实例化验证器
&*&实例化验证器
&*&@param&string&&&&$name&验证器名称
&*&@param&string&&&&$layer&业务层名称
&*&@param&bool&&&&&&$appendSuffix&是否添加类名后缀
&*&@return&\think\Validate
validate($name&=&'',&$layer&=&'validate',&$appendSuffix&=&false)
db:实例化数据库类
&*&实例化数据库类
&*&@param&string&&&&&&&&$name&操作的数据表名称(不含前缀)
&*&@param&array|string&&$config&数据库配置参数
&*&@param&bool&&&&&&&&&&$force&是否强制重新连接
&*&@return&\think\db\Query
db($name&=&'',&$config&=&[],&$force&=&true)
controller:实例化控制器,格式:[模块/]控制器
&*&实例化控制器&格式:[模块/]控制器
&*&@param&string&&&&$name&资源地址
&*&@param&string&&&&$layer&控制层名称
&*&@param&bool&&&&&&$appendSuffix&是否添加类名后缀
&*&@return&\think\Controller
controller($name,&$layer&=&'controller',&$appendSuffix&=&false)
action:调用模块的操作方法,参数格式:[模块/控制器/]操作
&*&调用模块的操作方法&参数格式&[模块/控制器/]操作
&*&@param&string&&&&&&&&$url&调用地址
&*&@param&string|array&&$vars&调用参数&支持字符串和数组
&*&@param&string&&&&&&&&$layer&要调用的控制层名称
&*&@param&bool&&&&&&&&&&$appendSuffix&是否添加类名后缀
&*&@return&mixed
action($url,&$vars&=&[],&$layer&=&'controller',&$appendSuffix&=&false)
import:导入所需的类库,同java的Import,本函数有缓存功能
&*&导入所需的类库&同java的Import&本函数有缓存功能
&*&@param&string&&&&$class&类库命名空间字符串
&*&@param&string&&&&$baseUrl&起始路径
&*&@param&string&&&&$ext&导入的文件扩展名
&*&@return&boolean
&import($class,&$baseUrl&=&'',&$ext&=&EXT)
vendor:快速导入第三方框架类库,所有第三方框架的类库文件统一放到系统的Vendor目录下面
&*&快速导入第三方框架类库&所有第三方框架的类库文件统一放到&系统的Vendor目录下面
&*&@param&string&&&&$class&类库
&*&@param&string&&&&$ext&类库后缀
&*&@return&boolean
vendor($class,&$ext&=&EXT)
dump:浏览器友好的变量输出
&*&浏览器友好的变量输出
&*&@param&mixed&&&&&$var&变量
&*&@param&boolean&&&$echo&是否输出&默认为true&如果为false&则返回输出字符串
&*&@param&string&&&&$label&标签&默认为空
&*&@return&void|string
dump($var,&$echo&=&true,&$label&=&null)
url:Url生成
&*&Url生成
&*&@param&string&&&&&&&&$url&路由地址
&*&@param&string|array&&$vars&变量
&*&@param&bool|string&&&$suffix&生成的URL后缀
&*&@param&bool|string&&&$domain&域名
&*&@return&string
url($url&=&'',&$vars&=&'',&$suffix&=&true,&$domain&=&false)
session:Session管理
&*&Session管理
&*&@param&string|array&&$name&session名称,如果为数组表示进行session设置
&*&@param&mixed&&&&&&&&&$value&session值
&*&@param&string&&&&&&&&$prefix&前缀
&*&@return&mixed
session($name,&$value&=&'',&$prefix&=&null)
cookie:Cookie管理
&*&Cookie管理
&*&@param&string|array&&$name&cookie名称,如果为数组表示进行cookie设置
&*&@param&mixed&&&&&&&&&$value&cookie值
&*&@param&mixed&&&&&&&&&$option&参数
&*&@return&mixed
cookie($name,&$value&=&'',&$option&=&null)
cache:缓存管理
&*&缓存管理
&*&@param&mixed&&&&&$name&缓存名称,如果为数组表示进行缓存设置
&*&@param&mixed&&&&&$value&缓存值
&*&@param&mixed&&&&&$options&缓存参数
&*&@param&string&&&&$tag&缓存标签
&*&@return&mixed
cache($name,&$value&=&'',&$options&=&null,&$tag&=&null)
trace:记录日志信息
&*&记录日志信息
&*&@param&mixed&&&&&$log&log信息&支持字符串和数组
&*&@param&string&&&&$level&日志级别
&*&@return&void|array
trace($log&=&'[think]',&$level&=&'log')
request:获取当前Request对象实例
&*&获取当前Request对象实例
&*&@return&Request
response:创建普通Response对象实例
&*&创建普通&Response&对象实例
&*&@param&mixed&&&&&&$data&&&输出数据
&*&@param&int|string&$code&&&状态码
&*&@param&array&&&&&&$header&头信息
&*&@param&string&&&&&$type
&*&@return&Response
response($data&=&[],&$code&=&200,&$header&=&[],&$type&=&'html')
view:渲染模板输出
&*&渲染模板输出
&*&@param&string&&&&$template&模板文件
&*&@param&array&&&&&$vars&模板变量
&*&@param&array&&&&&$replace&模板替换
&*&@param&integer&&&$code&状态码
&*&@return&\think\response\View
view($template&=&'',&$vars&=&[],&$replace&=&[],&$code&=&200)
json:获取Json对象实例
&*&获取\think\response\Json对象实例
&*&@param&mixed&&&$data&返回的数据
&*&@param&integer&$code&状态码
&*&@param&array&&&$header&头部
&*&@param&array&&&$options&参数
&*&@return&\think\response\Json
json($data&=&[],&$code&=&200,&$header&=&[],&$options&=&[])
jsonp:获取Jsonp对象实例
&*&获取\think\response\Jsonp对象实例
&*&@param&mixed&&&$data&&&&返回的数据
&*&@param&integer&$code&&&&状态码
&*&@param&array&&&$header&头部
&*&@param&array&&&$options&参数
&*&@return&\think\response\Jsonp
jsonp($data&=&[],&$code&=&200,&$header&=&[],&$options&=&[])
xml:获取xml对象实例
&*&获取\think\response\Xml对象实例
&*&@param&mixed&&&$data&&&&返回的数据
&*&@param&integer&$code&&&&状态码
&*&@param&array&&&$header&&头部
&*&@param&array&&&$options&参数
&*&@return&\think\response\Xml
xml($data&=&[],&$code&=&200,&$header&=&[],&$options&=&[])
redirect:获取Redirect对象实例
&*&获取\think\response\Redirect对象实例
&*&@param&mixed&&&&&&&&&$url&重定向地址&支持Url::build方法的地址
&*&@param&array|integer&$params&额外参数
&*&@param&integer&&&&&&&$code&状态码
&*&@return&\think\response\Redirect
redirect($url&=&[],&$params&=&[],&$code&=&302)
abort:抛出HTTP异常
&*&抛出HTTP异常
&*&@param&integer|Response&&&&&&$code&状态码&或者&Response对象实例
&*&@param&string&&&&&&&&&&&&&&&&$message&错误信息
&*&@param&array&&&&&&&&&&&&&&&&&$header&参数
abort($code,&$message&=&null,&$header&=&[])
halt:调试变量并且中断输出
&*&调试变量并且中断输出
&*&@param&mixed&&&&&&$var&调试变量或者信息
halt($var)
token:生成表单令牌
&*&生成表单令牌
&*&@param&string&$name&令牌名称
&*&@param&mixed&&$type&令牌生成方法
&*&@return&string
token($name&=&'__token__',&$type&=&'md5')
阅读(...) 评论()tp5控制器验证返回字符串,模型验证返回数组如何统一? - ThinkPHP框架
1.控制器中调用validate返回字符串,手册的案例--$result&=&$this-&validate(
'name'&=&&'thinkphp',
'email'&=&&'',
'name'&=&&'require|max:25',
'email'&=&&'email',
if(true&!==&$result){
//&&验证失败&输出错误信息
dump($result);
}1.1 返回字符串 ,如:'用户名不能为空'2.控制器调用,模型的validate$User&=&new&U
$result&=&$User-&validate(
'name'&=&&'require|max:25',
'email'&=&&'email',
'name.require'&=&&'&名称必须&',
'name.max'&=&&'&名称最多不能超过&25&个字符&',
'email'&=&&'&邮箱格式错误&',
)-&save($data);
if(false&===&$result){
//&&验证失败&输出错误信息
dump($User-&getError());
}2.1返回数组,如 :array('name'&=&&'用户名不能为空')这个是官方这么设定的吗?这样返回,还要手动获取这个一维数组的值,很是麻烦,有没有函数直接获取一维数组的值的?
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。}

我要回帖

更多关于 tp路由器配置文件下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信