-
在模板中使用花括号{$email}最后在编译之后显示的是<?php echo $email; ?>
这个花括号是框架里面定义的,在配置里面就有;是smarty模板引擎的五配置两方法的一部分;
花括号和变量之间不能有空格;当引用其他插件,如果和花括号有冲突,可以更改配置;
编译文件(运行后的文件)在runtime目录下的temp目录下查看全部 -
以后的学习,偏向于继承think目录下的controller类来进行操作
查看全部 -
参考笔记https://www.imooc.com/notepad/200b90
查看全部 -
开发有前台的建议用fetch,可以使MVC分离:创建view层级,新建模板文件,直接将fetch的第一个参数指向这个模板文件
查看全部 -
还可以通过调用Controller控制器的fetch方法 调用指定的view文件
调用前需要加载use think\Controller 命名空间,并在指定的应用控制器中extends Controller类
$this-> fetch()各参数同view()助手函数相同,区别是fetch()方法也可使用
$this -> assign()方法传递变量的视图层(此方法需继承Controller类才可调用)即tp3.x版本相同,view()方法不能调用此方法
与tp3.x版本不同的是,$this->display()是直接在控制器中输出要显示的字符串,原3.x版本表示的是调用视图层,也可使用$this -> assign()方法,webserver项目中不建议使用$this->display()方法,这会导致视图层不可用
查看全部 -
我们知道http请求是每一个请求对应一个响应,我们服务器会对我们的请求做出相应的响应
我们可以在请求中获取所有的请求信息
查看全部 -
thinkphp5 中不允许在控制器或控制器方法中进行die()操作,可能会影响response对象的返回
如果要在页面上打印一个数据或一个字符串 除 使用dump()函数外,还可以直接return要输出的值
输出默认是一个html格式
在方法中可以通过设置 Config::set("default_return_type","Json");来修改输出在页面的值
在方法中可以调用 Config::set("default_return_type","Json");等,返回的数组会返回对应的格式。 可以在conf文件中创建对应模块的配置文件进行配置,也可以在方法内传递参数配置。 但是实际开发中会在入口文件或者构造方法来统一的修改访问类型
参考笔记:https://www.imooc.com/notepad/200af6查看全部 -
Request.php有更多可供参考
helper.php中创建函数的方法的值得学习,先判断一下是否存在
tp5用$rquest->param()获取传递过来的参数,如果参数有重复的情况会覆盖,覆盖的规则如下:pathinfo参数会覆盖post中的参数,post中的参数会覆盖get中的参数。
1、input助手函数也是获取对象里面的参数. input('传递方式','参数','对参数过滤')
注意获取请求的参数值,尽可能带上请求的方式,如:input(get.id) ,如果获取的值不存在时,可通过第二个值进行默认值设置,第三个值用来过滤获取的值,例如可将值转换成intval
2、同时也可以通过request对象下的相关方法获取对应的参数或值,来对值进行相关操作
<?php namespace app\index\controller; use think\Request; class Index{ public function index(Request $request){ //dump($request->param());//param方法会返回post,get,pathinfo传递的所有值,即合并 //http://localhost/imooc/public/index/index/index/type/5.html?id=10 //$res = input('get.id');//10 //dump($request->get('id'));//10 //$res = input('post.id','100');//没有则默认100,结果100 //dump($request->post('id','100'));//100 //$res = input('post.id','abc','intval');//没有则默认100,结果100 //dump($request->post('id','100'));//100 #获取类型 //'get', 'post', //'put', 'patch', //'delete', 'param', //'request', 'session', //'cookie', 'server', //'env', 'path', 'file' //通过input助手函数对request中参数进行获取,#建议使用request对象(Request $request)#,避免重复定义相同函数 //$res = input('patch.id'); //session('emial','987@qq.com'); //dump(input('session.emial')); //dump(input('session.emials','imooc@qq.com')); //不存在默认imooc session('ss',' 123 '); $res = $request->session('ss','','trim');//trim过滤前后空格 dump($res); } }
查看全部 -
input助手函数 1.可以获取请求的参数和值,并对值进行过滤;注意获取请求的参数值,尽可能带上请求的方式,如:input(get.id) ,如果获取的值不存在时,可通过第二个函数进行默认值设置,第三个函数用来过滤获取的值,可将值进行转换 例如转换成intval
2.同时也可以通过request对象下的相关方法获取对应的参数或值,来对值进行相关操作
查看全部 -
下面对截图中的url进行分析:"course.io"是配置的域名,"/index/index/index/type/5.html"这一段是pathinfo模式,"?id=10"是get传参部分;
(type是类型的意思)
dump($request->get());返回的是?id=10这一部分;5.0以前的tp版本,通过get()可以获取到pathinfo和?id=5一起被获取到;tp5开始通过get()获取的,就不包含pathinfo那一部分了,看截图;
dump($request->param());返回的是"type/5.html?id=10"这一部分;,"type/5.html"相当于在传参
(type是类型的意思,param 是thinkphp自己写的类型,自动判断是什么类型的数据)
查看全部 -
返回的结果看截图,从上到下按顺序
dump($request->domain());返回的是域名
dump($request->pathinfo());返回的是pathinfo模式(带后缀)
dump($request->pathinfo());返回的是真实的pathinfo模式(不带后缀,后缀本来就是假的)查看全部 -
普通模式。如:http://localhost/index.php?m=模块&a=方法
pathinfo模式。如:http://localhost/index.php/模块/方法
Thinkphp框架的PATHINFO模式详解
对于Thinkphp的用户来说,PATHINFO模式是必须要掌握的,模式下默认以'/'隔开各部分,视觉效果非常好,并且可以通过
'URL_PATHINFO_DEPR'更改为任意符号,非常的方便快捷,更改为"-"或者'_'非常利于seo
PATHINFO模式是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。对应上面的URL模式,PATHINFO模式下面的URL访问地址是: http://localhost/index.php/home/user/login/var/value/
PATHINFO地址的前三个参数分别表示模块/控制器/操作。
不过,PATHINFO模式下面,依然可以采用普通URL模式的参数方式,例如: http://localhost/index.php/home/user/login?var=value 依然是有效的
PATHINFO模式下面,URL是可定制的,例如,通过下面的配置:
// 更改PATHINFO参数分隔符'URL_PATHINFO_DEPR'=>'-',
我们还可以支持下面的URL访问: http://localhost/index.php/home-user-login-var-value
通过设置'URL_HTML_SUFFIX' => 'html',可以加上.html后缀,实现伪静态的功能
http://localhost/index.php/home-user-login-var-value.html
总结:thinkphp的url的PATHINFO模式非常的好用,做个博客非常容易SEO,并且伪静态,后面的文章里,我们继续讲解静态化的设置
查看全部 -
在项目开发过程中,获取参数是十分重要的;tp框架为我们提供了input()助手函数来获取传递的各种参数;
input()函数是tp框架中定义的,不是PHP内置函数;同时我们在使用tp框架开发项目的过程中,不应该再定义和input的同名的函数了,否则会和框架中的input()冲突;
同时在入口文件中引用的其他文件中也不应该存在和input同名的自定义函数,否则也会和框架中的input()冲突;tp框架中的所有助手函数都是在thinkphp目录下的helper.php中定义的;查看全部 -
thinkphp5框架入口文件start.php在加载 核心文件app.php时,
调用app::run(方法名称可能有误,具体以项目为准)运行应用实例,
run()方法中调用了Request::instance()方法,App::run()方法返回Response对象,Response->send()调用send的方法将数据返回给请求客户端
故在app应用目录中传递( Request $request)参数 通过$request->方法名()即可调用请求的URL和对应的参数
其中需要注意的是,thinkphp5不同于之前的3.2版本,get()方法不再获取URL中的param部分,只获取URL后缀以?id=5此格式的参数
$request->param()方法可获取除模块/控制器/方法名 之外的param部分,更多的$request请求获取可参照截图及Request.php文件
dump() url()属于tp5提供的助手函数
查看全部 -
get新知识:在浏览器中右击-->审查元素--->页面中有Application中有Cookies点击就可以看到Cookie这个数组的键名和值;因为cookie是客户端的缓存机制(缓存的数据通常经过加密);
session是服务器端的缓存机制,session相对更安全
查看全部
举报