thinkphp3.2 微博系统项目
2017-02-04 13:50
183 查看
深入Thinkphp3.2框架遇到很多小问题 果然在学习语法知识的过程中 做项目是最好的检验成果
submit
a标签
模板文件中使用循环、条件等语句
Controller层:
View层:
模板变量和系统变量常量
View中即可直接使用
*b. 在View中也可以使用(模板)系统常量
网站使用Think.const 输出Think.server.script_name}和{Think.SERVER.script_name}等效
c. 在View中也可以使用(模板)系统变量
注意一:Action中使用的系统常量不可以直接在模板文件中使用
比如:
注意二:在JS文件中直接使用thinkphp的常量是不被解析替换的,所以要先在模板文件的元素中对thinkphp的常量进行定义
比如:
模板文件:
test.JS文件:
CSS文件中和JS文件中引用IMAGE图片
Public目录中含有CSS、JS、IMG目录
如果在CSS文件中引用IMG图片:
如果在JS文件中引用IMG图片:
不可以直接使用../,只能通过调用模板替换变量等方式获取路径
Crop裁剪方法的BUG
在FileModel的crop方法中我使用该代码,一直提示File控制器/crop方法404错误,后来才知道在tp框架中crop方法与thumb方法结合(其它方法未知),会导致这样的错误发生,因此解决方法,将crop方法与Open连缀调用,如下:
Volist/empty等标签name属性 (BUG)
注意:不论传递过来的是对象还是数组,在这些标签中name属性没有$
模板中使用U函数并且get传递参数
当我想点击某段文字,跳转到另外一个页面时候
此时不能在U函数里面get传递参数id,解决方法如下:
问题:
MVC:M:Model模型、V:View视图、C:Controller控制器 View视图:存放模板文件.html,结合html+css+jquery等将完整的页面在Controller中通过$this->display()渲染出来 Controller控制器:控制器可以将View AJAX传递过来的数据 再次传递给Model层。通过D方法等 Model模型:接收Controller传递过来的数据 进行访问数据库 增删改查 并对接收的数据进行服务器端的自动验证和自动完成等操作
submit
<input type="submit"> //点击按钮表单自动跳转 <input type="button"> //点击按钮 不会跳转 类似虚构的submit 只是不会提交
a标签
<a href="#"></a> //#默认#Top 点击滚动条会自动返回顶部 <a href="javascript:void(0)"></a> //不会返回顶部
模板文件中使用循环、条件等语句
Controller层:
$list['data'] = 0; $this->assign('list',$list);
View层:
<switch name="list"> //注意此处name值没有$ <case value="$list['data']"> <p>$list['data']<p> </case> <default /> <h1>$list['data']<h1> </switch>
模板变量和系统变量常量
*a. //可以在Config中设置模块替换变量*
'TMPL_PARSE_STRING' => array( '__CSS__' => __ROOT__.'/Public/'.MODULE_NAME.'/css', '__JS__' => __ROOT__.'/Public/'.MODULE_NAME.'/js', '__IMG__' => __ROOT__.'/Public/'.MODULE_NAME.'/img', ),
View中即可直接使用
__JS__、__IMG__、__CSS__
*b. 在View中也可以使用(模板)系统常量
网站使用Think.const 输出Think.server.script_name}和{Think.SERVER.script_name}等效
c. 在View中也可以使用(模板)系统变量
{$Think.server.script_name} // 输出$_SERVER变量 {$Think.session.session_id|md5} // 输出$_SESSION变量 {$Think.get.pageNumber} // 输出$_GET变量 {$Think.cookie.name} // 输出$_COOKIE变量
注意一:Action中使用的系统常量不可以直接在模板文件中使用
比如:
Action中:MODULE_NAME //输出模型名称 模板中:{:MODULE_NAME}
注意二:在JS文件中直接使用thinkphp的常量是不被解析替换的,所以要先在模板文件的元素中对thinkphp的常量进行定义
比如:
模板文件:
<script type="text/javascript"> var app="__APP__"; </script> <script src="__PUBLIC__/Js/test.js"></script>
test.JS文件:
$(function(){ alert(__APP__); });
CSS文件中和JS文件中引用IMAGE图片
Public目录中含有CSS、JS、IMG目录
如果在CSS文件中引用IMG图片:
background:url("../IMG/image.png");
如果在JS文件中引用IMG图片:
不可以直接使用../,只能通过调用模板替换变量等方式获取路径
$('#image').attr('src',__Public__/IMG/image.png);
Crop裁剪方法的BUG
``` $image = new Image(); $image->open($url); *$image->crop($w,$h,$x,$y)->save($url);* $image->thumb(200,200)->save($bigPath);
在FileModel的crop方法中我使用该代码,一直提示File控制器/crop方法404错误,后来才知道在tp框架中crop方法与thumb方法结合(其它方法未知),会导致这样的错误发生,因此解决方法,将crop方法与Open连缀调用,如下:
$image->open($url)->crop($w,$h,$x,$y)->save($url);
Volist/empty等标签name属性 (BUG)
$list = array("a"=>"hello","b"=>"world"); $this->assign('list',$list); <volist name="list"> {$list['a']} </volist>
注意:不论传递过来的是对象还是数组,在这些标签中name属性没有$
模板中使用U函数并且get传递参数
当我想点击某段文字,跳转到另外一个页面时候
<a href="{:U('Space/index/id/{$id}')}">点击跳转space页面</a>
此时不能在U函数里面get传递参数id,解决方法如下:
<a href="{:U('Space/index',array('id'=>$id))}">点击跳转space页面</a>
相关文章推荐
- ThinkPHP(3.2)搭建简单留言板项目
- [iOS微博项目 - 3.2] - 发送微博
- 【实战项目】采用jeecg3.2框架,一个人写的购物系统
- 第四周项目3.2-小学生算术能力测试系统
- 后盾网ThinkPHP微博项目
- 后盾网ThinkPHP微博项目
- Thinkphp5 开发 OA 办公系统 - 项目管理
- 【记录】Mac系统创建Cocos2dx3.2项目方法
- Thinkphp 微博项目
- 一个基于Tp3.2(thinkphp3.2)的工会管理系统
- thinkphp3.2 phpexcel在linux系统报错
- thinkphp3.2【控制器调用视图view模板&视图模板与项目进行整合】
- thinkphp3.2在php7下运行,出现错误"系统不支持:mysql"
- PHP框架之ThinkPHP项目CMS内容管理系统源码及开发手册视频
- ThinkPHP3.2 应用系统验证码
- thinkphp3.2 项目上线,关闭调试及遇到的url自动小写问题
- thinkphp3.2 系统常量参考
- 使用 Eclipse 帮助系统为项目编制文档
- 应用Rational 工具简化基于J2EE的项目 (三)转换到系统模型
- 株洲商行MIS系统人力资源管理子系统一期项目终审