韦德国际1946英国 > 计算机网络 > ThinkPHP框架入门知识,import使用方法

原标题:ThinkPHP框架入门知识,import使用方法

浏览次数:123 时间:2019-07-13

3、Import用于导入第三方类库,暗许根目录是ThinkPHP/Extend/Library

 URL
URL规则
1、默许是分别轻重缓急写的
2、要是大家不想区分轻重缓急写能够改配置文件
‘URL_CASE_INSENSITIVE’=>true,//url不区分轻重缓急写
3、要是模块名叫 UserGroupAction
那么url找模块就必须要写成

if标签,条件决断,无法用守旧的 <,>=,!=...
<if condition="($name eq 1) or ($name gt 100)">
xx
<else if condition="$name eq 2" />
222
<else />
ssss
</if>

  验证码存在$_SESSION['verify']中,严谨差距轻重缓急写。

$this->display(别的主旨下的 文件夹下的 模板文件);//需求展开宗旨协助
$this->display(‘my:Index:index’);

私下认可命名范围
protected $_scope = array(
    'default' => array(),
    );
调用default时,能够不加default
$model->scope()->select()与 $model->scope('default')->select();相同

  '__PUBLIC__'=>__ROOT__.'/'.APP_NAME.'/'.'Tpl/Admin/Public',

方法2
volist

可用视图查询完毕多表查询作用,得继续 ViewModel模型
class BlogViewModel extends ViewModel
{
  public $viewFields = array(
    'Blog' => array('id', 'name', 'title'), // 表示从 blog中取id,name,title字段
    'Category' => array('title'=>'category_name', '_on'=>'Blog.Category_id = category.id'),//表示category表中的title字段小名称叫 category_name, 连接条件是Blog.Category_id = category.id
    'User'=>array('name'=>'username', '_on'=>'Blog.user_id = User.id'),
  );
}
假使表名不均等,如 blog对应的为myblog,则在 'blog' => array()中加多项:
'_as' => 'myblog'
SQL语句为:
select Blog.id as id,
blog.name as name,
blog.title as title,
category.title as category_name,
User.name as username from think_blog blog join think_category category
join think_user user
where blog.category_id = category.id and user.id = blog.user_id;

2、$.post(url,datasend,function(data){......},'json'); 异步传输

转移模板变量法规,修改配置项
‘TMPL_PARSE_ST中华VING’=>array(           //增加自身的模板变量准绳
‘__css__’=>__ROOT__.’/Public/Css’,
‘__JS__’=>__ROOT__.’/Public/Js’,
),

可引进两个公文
<include file="file1, file2" />

 

询问艺术
常备查询办法
a、字符串
$arr=$m->where(“sex=0 and username=’gege'”)->find();
b、数组
$data['sex']=0;
$data['username']=’gege';
$arr=$m->where($data)->find();
只顾:这种艺术暗中认可是and的涉及,即使使用or关系,须要增添数组值
$data['sex']=0;
$data['username']=’gege';
$data['_logic']=’or';
表明式查询形式
$data['id']=array(‘lt’,6);
$arr=$m->where($data)->select();
EQ 等于
NEQ不等于
GT 大于
EGT大于等于
LT 小于
ELT小于等于
LIKE 模糊查询
$data['username']=array(‘like’,’%ge’);
$arr=$m->where($data)->select();
NOTLIKE
$data['username']=array(‘notlike’,’%ge%’); //notlike中间未有空格
$arr=$m->where($data)->select();

模型相关

  <img src="{:U('Admin/Login/verify')}" id="code"/> <a >看不清</a>

ThinkPHP核心文件介绍
├─ThinkPHP.php     框架入口文件
├─Common 框架公共文件
├─Conf 框架配置文件
├─Extend 框架扩张目录
├─Lang 宗旨语言包目录
├─Lib 焦点类库目录
│  ├─Behavior 大旨行为类库
│  ├─Core 大旨基类库
│  ├─Driver 内置驱动
│  │  ├─Cache 内置缓存驱动
│  │  ├─Db 内置数据库驱动
│  │  ├─TagLib 内置标签驱动
│  │  └─Template 内置模板引擎驱动
│  └─Template 内置模板引擎
└─Tpl 系统模板目录

Define 标签,举办常量定义
<define name="LIN" value="3615" />
在运维模板的时候 定义了二个LIN的常量

那样子在后台分组中替换__PUBLIC__便是设置后的门路,与前台不一样开。

}

模板注释
格式:{/* 注释内容 */} 或 {// 注释内容}

TMPL_PARSE_STRING =>array(

<switch name=’number’>
<case value=’1′>贰个僧人挑水吃</case>
<case value=’2′>多少个和尚台水吃</case>
<case value=’3′>四个和尚没水吃</case>
<default/> 这里是默许值
</switch>
巡回结构
1.for
<table border=’1′ width=’500′>
<for start=’10’ end=’00’ name=’j’ step=’-2′ comparison=’gt’>
<tr><td>{$j}</td><td>abc</td></tr>
</for>
</table>

获取URL参数
健康处境下.localhost/index.php/User/index/id/1
在UserAction.class.php的index方法中,
$_GET['_URL_'][0] // User
$_GET['_URL_'][1] // Index
$_GET['_URL_'][2] // id
....
也可用
$this->_param(1); // index
$this->_param('id'); // 1

  JS代码:

**JQuery 异步提交
$(‘#send-btn’).click(
function(){
var username=$(‘input[username=username]‘);
var password=$(‘input[password=password]‘);

<include file="操作名" />
<include file="read" />
一定于含有于一致模块下的read操作中的模板,如:
class UserAction extends Action
{
  public function index()
  {

5、Model类对象中有个[data]数组,当调用了create方法之后,会自动把提交过来的数额放置在[data]数组中,等待插入数据库,当调用add之后更新数据。

ThinkPHP 3 的模型使用
亟需在章程中通过new Model(表名)的花样操作数据库
$m=new Model(‘User’);
$arr=$m->select();
‘DB_TYPE’=>’mysql’,   //设置数据库类型
‘DB_HOST’=>’localhost’,//设置主机
‘DB_NAME’=>’thinkphp’,//设置数据库名
‘DB_USE君越’=>’root’,    //设置用户名
‘DB_PWD’=>”,        //设置密码
‘DB_PORT’=>’3306′,   //设置端口号
‘DB_PREFIX’=>’tp_’,  //设置表前缀
也得以使用DSN方法实行安插
‘DB_DSN’=>’mysql://root:@localhost:3306/thinkphp’,//使用DSN形式陈设数据库音讯
即使三种格局同期设有,以DSN方式为预先

$user = new UserModel('Admin');
或者 $user = M("UserModel:Admin"[, '表前缀', '配置文件']);


贯通操作
常用连贯操作
1.where
扶助大家设置查询条件
2.order
对结果开始展览排序
$arr=$m->order(‘id desc’)->select();
$arr=$m->order(array(‘id’=>’desc’,’sex’=>’asc’))->select();
3.limit
界定结果
limit(2,5)
limit(‘2,5′)
limit(10)//limit(0,10)
4.field
安装查询字段
field(‘username as name,id’)
field(array(‘username’=>’name’,’id’)
田野先生(‘id’,true) //获取除了id以外的享有字段
5.table
设置表名
6.group
分组
7.having

机动验证
对表单的字段验证
在 Model类里面定义 $_validate属性,是叁个二维数组
array(验证字段,验证准绳,错误提示[,验证条件,附加条件,验证时间]);
class TestModel extends Model
{
  protected $_validate = array(
    array('verify', 'require', '验证码必须'), // 暗中同意用正则表明式验证
    array('name','', '账号名称已经存在', 0, 'unique', 1), // 在新添的时候证实name字段是或不是唯一
    array('value', array(1,2,3),'值的限制不科学', 2, 'in'), // 当班值日不为空的时等候法庭判果断是还是不是在三个限量内
    array('repassword', 'password','确认密码不得法', 0, 'confirm'), //验证确认密码是还是不是和密码一致
    array('password', 'checkPwd', '密码格式不正确', 0, 'function'), //自定义函数验证密码格式(checkPwd)
  );
}
当使用系统 create方法时会自动验证
$User = D('User');
if(!$User->create())
{
  //若是验证失利!
  exit($User->getError());
}else
{
  // 通过
}
能够动态退换验证准则
$User = D('User');
$validate = array(array('verify', 'require', '验证码必须')); // 仅仅须要张开验证码的求证
$User->setProperty('_validate', $validate);
$result = $User->create();
if(!$result)
{
  // 失败
   exit($User->getError());
}else
{
   // 成功验证
}

  Image::buildImageVerify()创制验证码图像

11课起头没记录

Home(前台)
Admin(后台)
index.php(前台入口文件)
admin.php(后台进口文件)
地点五个类型目录

  function回调函数,data为回到数据。

$this->display(‘./Public/error.html’,’utf-8′,’text/xml’);

字段定义:
$田野s = $User->getDbFields(); // 获取表的装有字段
假使想每回获得的字段不是从表的构造中收获,可能想猎取钦赐的字段,可在 Model中定义
class UserModel extends Model
{
 //此时用 getDbFields()只获得里面钦点的那有的
  protected  $fields = array('id, name', '_pk' => 'id', '_autoinc' => true);
  //...
}

1、项目分组之后,后台模板的公用文件一般放置在Tpl/Admin/Public中,那样子在轮换模板路径时候即便还用__PUBLIC__时为了不与前台争执,应该在Admin/config.php中配置一下模板替换准则,

2.一般形式

$User = D('User');
$User->name = 'thinkphp';
$User->email = 'ssss@qq.com';
$User->address = 'gd';
$User->add();//自动体系化后保存在数据库

 

艺术4(一行化解)
$this->assign(‘data’,M(‘User’)->select())->display();

概念了种类和分组
ITEM = 'app'
GROUP_LIST = 'admin, home'

  固然要持续累加数据足以一向$model->valName = $val,就将新数据增进到了[data]数组中。

$data['name']=array(array(‘like’,’%2%’),array(‘like’,’%五%’),’gege’,’or’);
总计查询
count //获取个数
max   //获取最大数
min   //获取最小数
avg   //获取平平均数量
sum   //获取总和
SQL直接询问
a、query 主要数管理读取数据的
马到成功再次来到数据的结果集
未果再次来到boolean false
$m=M();
$result=$m->query(“select *  from t_user where id >50″);
var_dump($result);
b、execute 用于创新个写入操作
马到功成再次回到影响行数
停业再次回到boolean false
$m=M();
$result=$m->execute(“insert into t_user(username) values(‘ztz3′)”);
var_dump($result);

URL路由
平整路由
在配置文件 config.php中
'URL_ROUTER_ON' => true,
'URL_ROUTE_RULES' = array(
    'news/:id' => 'News/read',
    'news/read/:id' => '/news/:1'
);
当 localhost/index.php/news/1 会去访谈 News模块下的 read方法,并传播参数为id = 1,即
localhsot/index.php/News/read/id/1

  datasend格式为{name:val1,content:val2}的json格式

$.post(sendUrl,{username:username.val(),password:password.val()},function(data){},’json’);
}
);

Action参数绑定
原理是把U路虎极光L中的参数(不满含分组,模块,操作)和调整器中的方法参数绑定,U奔驰G级L:


class BlogAction extends Action
{
  public function read($id = 0)
  {
    // id = 5
    $Blog = M('Blog');
    $Blog->find($id);
  }
 
  public function archive($year=2014, month=07)
  {
        $year = $year; // 2012
    $month = $month; //03
    //.....
  }
}

),

 分组、页面跳转与ajax
多选用配置本领
运用分组
页面跳转
$this->success(‘查询成功’,U(‘User/test’));
$this->redirect(‘User/test’,”,5,’页面正在跳’);
Ajax技巧
大C方法  获取配置文件中数组名称和值
echo C(‘DB_USER’);

config.php
'APP_GROUP_LIST' => 'Home,Admin', //项目分组织设立定
'DEFAULT_GROUP'  => 'Home', //暗中认可分组

  示例:Import('ORG.Unit.Image');导入了Image.class.php。

自定义配置文件(相互不能访问,但集体配置能够相互访谈)
1,在host/App/Conf/创设五个公文夹,分别为前台和后台如Index Admin
配置: 前台host/App/Conf/Index/config.php
后台host/App/Conf/Admin/config.php

$result = $User->relation(true)->add($data);
BELONGS_TO与MANY_TO_MANY看手册

function change_code(obj){      $("#code").attr("src",verifyURL '/' Math.random());//verifyURL为验证码地址      return false;  }

ThinkPHP的MVC对应的目录
M 项目目录/应用目录/Lib/Model
V 项目目录/应用目录/Tpl
C 项目目录/应用目录/Lib/Action
url访问C
url的4种访问格局
1.PATHINFO 模式

平凡单个可用 check('验证数据', '验证法则', '验证类型');
$model->check($value, 'email');
$model->check($value, '1,2,3', 'in');

4、验证码选用

 视图
模板的行使
a、规则
模板文件夹下[TPL]/[分组文件夹/][模大头芭蕉点文件夹/]和模块名同名的文件夹[Index]/和章程名同名的公文[index].html(.tpl)
更动模板文件的后缀名(修改配置文件)
‘TMPL_TEMPLATE_SUFFIX’=>’.html’,//退换模板文件后缀名
b、修改模板文件目录等级次序
‘TMPL_FILE_DEPR’=>’_’,//修改模板文件目录档案的次序
c、模板主旨
‘DEFAULT_THEME’=>’your’,//设置默许模板大旨
急需在TPL上边新建四个your文件夹作为模大芭蕉点文件夹
怎么着动态修改模板宗旨?
1、在后台希图一个功效,修改config.php文件中的私下认可模板项
2、通过url传递 t=主旨 参数能够修改不一样的模版
‘DEFAULT_THEME’=>’your’,//设置默许模板宗旨
‘TMPL_DETECT_THEME’=>true,//自动侦测模板核心
‘THEME_LIST’=>’your,my’,//帮衬的沙盘核心列表

URL生成,用U方法
U('[分组/模块/操作]?参数' [,'参数1', '伪静态后缀', '是还是不是跳转', '显示域名']);
U('User/add') // 生成User模块下的 add 操作 ULANDL
U('User/read?id=1') // User 模块下的 read操作,并传播参数 id=1
U('Admin/User/select') // Admin分组下的 User模块 select 操作
其次个参数能够是数组或许是字符串
U('Blog/cate', array('cate_id' => 1, 'status' => 1))
U('Blog/cate', 'cate_id=1&status=1');
U('Blog/cate?cate_id=1&status=1')
上述多个等价

出口模板内容
a、display
1.display中向来不参数
$this->display();
2.足以带参数
$this->display(本模块文件夹下的其余模板文件);
$this->display(‘index2′);

模板输出:用display();
当前模块另外操作,如当前的edit操作模板;
$this->display('edit'); //不用模板文件路线和后缀

自定义调控器
1,在Action文件夹删除原本的默许调整器
2,创立四个文本夹,分别为前台和后台如Index Admin
访问: 前台host/index.php/Index   后台host/index.php/Admin

页面跳转
马到功成时:在操作方法中用 $this->success('提醒信息', '跳转页面');
失利时:$this->error('fail');可定制,具体看手册

if(password.val()==”){
alert(‘密码不可能为空’);
password.focus();
//让用户名获得关节
return;
}

扩展了操作方法增多后缀成效,如
config.php
'ACTION_SUFFIX' => 'Act'
localhost/index.php/m/a/产生了拜会里面包车型大巴 aAct方法了

$this->display(一个url路径);
$this->display(‘./Public/error.html’);

还可动态设置法则
$this->auto($auto)->create();

App:
Modules   //项目模块  ==>Admin/Action,Tpl,Model,Conf,Common; Index/Action,Tpl,Model,Conf,Common;
Common    //公共Common
Conf      //公共Conf
Lib       //公共Lib
Tpl       //公共Tpl
Runtimes  //运行时

贯彻视图查询结果时:
$model = D('BlogView');
$model->field('id,name,title,category_name,username')->where('id> 10')->order('id desc')->select();

动用函数 {:phpinfo()}

借使要传播参数:
$User = D('User');
// 动态切换成视图模型类 并传到viewFields属性
$UserView = $User->switchModel('View', array('viewFields'));

常用路线变量:__ROOT__.’/’.APP_NAME.’/’.C(‘APP_GROUP_PATH’).’/’.GROUP_NAME.’/’
新的目录结构:
ThinkPHP  //系统目录
App       //项目目录
Public    //静态文件目录
index.php //全部项目标进口文件

其次种方法是以近期出口模板为输入的办法
这种方法的入口依然在User/add.html 模板,不过大家得以修改下add模板文件的内容,在头顶扩张上面包车型客车布局标签:
<layout name="layout" />
layout.html中的内容与第一种的剧情同样

措施3(新本子,减少了代码)
$this->assign(‘变量名’,’变量值’)->display();

那时的布置目录为
app/Config/Home/config.php
app/Config/Admin/config.php
还得开启用分组配置文件:
'APP_GROUP_LSIT' => 'Home,Admin',//项目分组设定
'DEFAULT_GROUP' => 'Home', //私下认可分组

禁止表单管理函数的拜见,进步安全性
方法1
if(!$this->isPost()) _404(‘页面不真实’,U(‘index’));
echo ‘符合规律提交';

普拉多表示调用一个模块下的某部操作方法:
R('[项目名://][分组名/]模块名/操作名', array(param1, param2...))

ThinkPHP 3.1.2 输出和模型使用
ThinkPHP 3 的输出
a、通过 echo 等PHP原生的输出格局在页面中输出
b、通过display方法输出
想分配变量能够应用assign方法
c、修改左右定界符
休要修改配置文件中的配置项
‘TMPL_L_DELIM’=>'<{‘, //修改左定界符
‘TMPL_R_DELIM’=>’}>’, //修改右定界符

比较标签(eq,equal,notequal,neq,gt,lt,....)
<比较标签 name="变量" value="值">内容</相比较标签>
<eq name="name" value="value">value</eq>
<equal name="name" value="value">value</equal>

**php异步表单管理:
Public function form_save(){
//var_dump($this->isAjax());   //推断是不是有多少交到
//var_dump(IS_AJAX);           //[新版本]推断是还是不是有数量提交
if(!$this->isAjax()) halt (‘页面荒诞不经’);
$data=array(
‘username’=>$this->_post(‘username’),
‘password’=>$this->_post(‘password’),
‘time’=>time()
);
//p($data);

直白全路径输出模板
display('模板文件名');要钦命后缀名
如:当前的 Public 目录下边包车型地铁Menu.html模板文件;
$this->display('./Public/menu.html');

URL伪静态
‘URL_HTML_SUFFIX’=>’html|shtml|xml’,//限制伪静态的后缀
URL路由
1、运转路由
要在安插文件中开启路由帮助
2、使用路由
1.法则表明式配置路由
‘my’=>’Index/index’,//静态地址路由
‘:id/:num’=>’Index/index’,//动态地址路由
‘year/:year/:month/:date’=>’Index/index’,//动态和静态混合地址路由
‘year/:yeard/:monthd/:dated’=>’Index/index’,//动态和静态混合地址路由
增加 d代表类型只好是数字
‘my/:id$’=>’Index/index’,// 加上$表明地方中只好是 my/一千前面不能够有任何剧情了
2.正则表明式布局路由
‘/^year/(d{4})/(d{2})/(d{2})/’=>’Index/index?year=:1&month=:2&date=:3′
3、注意事项:
1.越复杂的路由越往前边放
‘URL_ROUTE_RULES’=>array(
‘my/:year/:month:/:day’=>’Index/day’,
‘my/:idd’=>’Index/index’,
‘my/:name’=>’Index/index’,
)
2.能够行使$作为完全同盟的路由准则
‘URL_ROUTE_RULES’=>array(
‘my/:idd$’=>’Index/index’,
‘my/:name$’=>’Index/index’,
‘my/:year/:month:/:day$’=>’Index/day’,
),
3.用正则相配的方式
‘URL_ROUTE_RULES’=>array(
‘/^my/(d )$/’=>’Index/index?id=:1′,
‘/^my/(w )$/’=>’Index/index?name=:1′,
‘/^my/(d{4})/(d{2})/(d{2})$/’=>’Index/day?year=:1&month=:2&day=:3′,
),

  }
}

别的标签使用
1、在模板中一向利用PHP代码
<php> echo “笔者是赵桐正” </php>
2、建议退换左右定界符
在计划文件中改造
‘TMPL_L_DELIM’=>'<{‘, //修改左定界符
‘TMPL_R_DELIM’=>’}>’, //修改右定界符

也可传递变量
<include file="read" title="this is title" keyword="keyword..." />
read.html代码
[title]
[keyword]
可被交换

a、模板能够遍历数组

系统变量,(看手册)
{$Think.}以$Think. 开头的,如:
{$Think.server.script_name}

稳重:假若三个字段要合作八个通配符
$data['username']=array(‘like’,array(‘%ge%’,’%2%’,’%五%’),’and’);//若无第八个值,私下认可关系是or关系
$arr=$m->where($data)->select();
BETWEEN
$data['id']=array(‘between’,array(5,7));
$arr=$m->where($data)->select();
//SELECT * FROM tp_user WHERE ( (id BETWEEN 5 AND 7 ) )
$data['id']=array(‘not between’,array(5,7));//注意,not 和 between中间鲜明要有空格
$arr=$m->where($data)->select();
IN
$data['id']=array(‘in’,array(4,6,7));
$arr=$m->where($data)->select();
//SELECT * FROM tp_user WHERE ( id IN (4,6,7) )

导入文本:
<import type="js" file="js" />
<import type="css" file="stysheet" />
type:暗许值为 js.仍是可以够是css
那儿相当于(根目录)
<script type="text/javascript" src="Public/js.js"></script>
<import type="js" file="js" basepath="./Common/javascript" />
相对于
<script type="text/javascript" src="./Common/javascript/js.js"></script>

字段映射:
能够在表单中潜藏真实的数据表的字段消息,能够一贯提交,会活动转换
class UserModel extends Model
{
  protected $_map = array(
    'name' => 'username', // 表单中的 name 字段映射为数据表的字段 username
    'mail' => 'email'  // 表单中的 mail 字段映射为数据表的字段 email
  );
}

2.volist
<volist name=’list’ id=’v’>
{$v.username}<br/>
</volist>
3.foreach
<foreach name=’list’ item=’v’ key=’k’>
{$k}——-{$v}<br/>
</foreach>
奇异标签
1、相比较标签
eq或者 equal 等于
neq 或者notequal 不等于
gt 大于
egt 大于等于
lt 小于
elt 小于等于
heq 恒等于
nheq 不恒等于

Volist标签首要用于在模板中循环输出数据集也许多维数组。(看手册)
<Volist name="list" id="vo" offset="5" length="10" key="i" mod="5" empty="不存在">
   {$vo.name}
   {$vo.id}
   <eq name="mod" value="4"></eq>
</Volist>

$this->display(其余文件夹下的沙盘文件);
$this->display(‘Public:error’);//注意,仅仅供给在Tpl下有Public文件夹以及个中的error.html就能够,没有须要确定有Public模块

用 parseFieldsMap() 方法了可把从数据表的字段映射为钦命的外号字段:
$User = M('User');
$data = $User->find(1); // 此时为数据表的忠实字段
$data = $User->parseFieldsMap($data); // 就可以映射为 name和mail这段

注意:分组应用不支持{:U(“form_save”)}间接动用,即方今调控器当前艺术,那样写:
{:U(“/Index/Index/form_save”)}
*分组应用[完毕]

<compare name="name" value="5" type="eq">value</compare>

*表单管理
方法1 $this->_post(”);
收获提交表单,会使用函数htmlspecialchars()过滤
$username=$this->_post(‘username’);

也足以用分组开式,此时简化了一个项目目录
Thinkphp
App(Home/Admin)
public
Uploads
index.php(入口文件)

方法2  I(‘username’);  [3.1.3新功能]
大I,自动判别post和get
$username=I(‘username’);
echo I(‘username’,’子虚乌有值时的暗中认可值’,’使用函数’);

<for start="1" end="100">
{$i]
</for>
相当于
for($i=1; $i < 100; $i )
{
   echo $i;
}

模板里分页数据调用:{$page}

<include file="模块名:操作名" />都以绝对的模版模块
<include file="Blog:read" />
即为 Tpl/Blog/read.html

//再次来到插入的ID值,数据库从1方始
if(M(‘user’)->data($data)->add()){
$this->success(‘增加职业有成’,’index’);
}else{
$this->error(‘增添失败’);
}

$model->scope('latest')->select();
// select * from think_new order by create_time desc limit 10

2,模板输出
方式1(.语法会判别是目标依然数组,配置参数:TMP_VAR_IDENTIFY=>’array’, 那样就能够以为是数组,以增速)
<foreach name=’data’ item=’v’>
{$v.username}—{$v.password}—{$v.time|date=’y-m-d H:i:s,###’}
</foreach>

安顿形式可用多个单入口表示前后台
thinkphp
Uploads
public

Public:
css js img

获得系统变量(可用PHP中的 $_GET,$_POST, $_SESSION, $_COOKIE ...)
也可在 action 中调用如下方法
$this->方法名('变量名'[,过滤方法][,默认值]);
主意名称叫:_get,_post,_param,_put,_request,_session, _cookie...可看手册
$this->_get('name'); 获取 $_GET['name']的值,同一时候调用配置文件中暗中同意的过滤方法
$this->_get('id', 'strip_tag', 0); 调用 strip_tags过滤id值,若无值,则为0,如果未有安装暗中同意值,则为null.

//早先异步传输(要在模板内才足以解析php,不可能在单身js文件操作)
var sendUrl='{:U(“Index/Index/form_save”,”,”)}';

<range name="id" value="1,2,3" type="in"></range>

**单独分组配置
开启:
1,先布置利用分组
2,加多参数
‘APP_GROUP_MODE’=>1,  //开启独立分组
‘APP_GROUP_PATH’=>’Modules’, //私下认可分组路线,暗中认可:Modules

界定标签
<in name="id" value="1,2,3">xxx</in>
<notin name="id" value="1,2,3">yyy</notin>
<between name="id" value="1,2">xxx</between>// 当中value独有是多个值时期
<notbetween name="id" value="1,10">aaaaa</notbetween>

措施2 (推荐)  halt 页面能够定制错误页面:
if(!IS_POST) halt(‘页面不设有’);
echo ‘符合规律提交';

$map['id'] = array('eq', 100);和 $map['id'] = 100等效,表示 id = 100
....
表达式查询  EXP
$map['id'] = array('in', '1,2,3');与 $map['id'] = array('exp', 'in(1,2,3)');等效
exp查询的条件不会被当成字符串,所未来边的询问条件能够利用其他SQL援救的语法,富含接纳函数和字段名称。查询表明式不仅仅可用以查询条件,也能够用于数据更新
$User = M();
$data['score'] = array('exp', 'score 1');
$User->where('id=5')->save($data);

3.REWRITE模式

采纳php代码,在在那之中的非PHP标签不起成效
php标签
<php>
echo 'hi, lin3615';
</php>
原生态 php
<?php echo 'hi,lin3615';?>
若果设置了TMPL_DENY_PHP参数为true,就不能在模板中央银行使原生的PHP代码,然而照旧支撑PHP标签输出

ThinkPHP 是四个无偿开源的,神速、简单的面向对象的 轻量级PHP开拓框架 ,创建于二〇〇六年底,遵从Apache2开源协议发表,是为着敏捷WEB应用开采和简化公司应用开荒而诞生的。ThinkPHP从诞生以来平素秉承简洁 实用的设计规范,在有限协助理想的属性和至简的代码的还要,也推崇易用性。并且存有大多的原创功效和特点,在社区组织的积极参与下,在易用性、扩充性和性子方 面不断优化和改进,已经成长为国内最当先和最具影响力的WEB应用开荒框架,众多的头名案例确定保证能够安静用于生意以及门户级的费用。

获取主键
$model->getPk();

本文由韦德国际1946英国发布于计算机网络,转载请注明出处:ThinkPHP框架入门知识,import使用方法

关键词:

上一篇:深入理解JavaScript系列,汤姆大叔

下一篇:没有了