一、基础
1. 开启调试模式
修改应用配置文件( application/config.php )中的 'app_debug' => true,为了安全,在正式部署的时候一定要关闭调试模式。
2. 导入类库的方法
这里使用了 use 来导入一个命名空间的类库,然后可以在当前文件中直接使用该别名而不需要使用完整 的命名空间路径访问类库。也就说,如果没有使用 use think\Controller; 就必须使用 class Index extends \think\Controller 这种完整命名空间方式。
二.Url和基本路由
一般情况下,在url中模块名和控制器名是不区分大小写的,但如果使用驼峰法(HelloWord),则在url中必须使用hello_word来访问
如果希望严格区分大小写访问(或者要支持驼峰法进行控制器访问),可以在应用配置文件中设置: // 关闭URL自动转换(支持驼峰访问控制器) 'url_convert' => false,
(2)参数的传入
在访问url时有三种方法
1》变量1/value/变量2/value
2》变量1/变量2/value1/value2
3》url?变量1=value1&变量2=value2
注意:如果在配置文件里面设置了按照参数顺序获取 'url_param_type' => 1,
1》和2》的访问方式会拿到变量1/value分别复制给两个参数
但是3》的访问方式仍然可以得到正确答案
(3) 定义路由
我们在路由定义文件( application/route.php )里面添加一些路由规则,如下:
代表以hello开头的所有访问都可以路由到
‘hello/:name’=>”index\index\hello”;
代表name参数是可选参数
‘hello/[:name]’=>”index\index\hello”;
代表完整匹配,只能匹配到index模块下面的index控制器下面的hello方法
‘hello/[:name]$’=>”index\index\hello”;
(4) 定义闭包
‘hello/[:name]’=>function($name)
{
Echo welcome!.$name;
}
http:localhost\tp5\hello\thinkphp;
三.向模板分配变量
一. 模板中包含文件
{include file="Common/header" title="哈哈"}<!-- header是模板名称 -->
<h1>ThinkPHP欢迎您!</h1>
{include file="index@Common/footer"}
(1)/*单独分配一个变量*/
$this->assign('name','Alice');
(2) /*分配多个变量*/
/*方法一*/
$this->assign([
'name'=>'Alice',
'sex'=>'女',
'age'=>19
]);
return $this->fetch('index');
/*方法二*/
return $this->fetch('index',[
'name'=>'Alice',
'sex'=>'女',
'age'=>19
]);
(3)$v=new View();
//分一维数组*/
$data=array('a1','a2','a3');
$v->arr=$data;
/*分配一维关联数组*/
$data2['name']="吉吉";
$data2['sex']="女";
$v->arr2=$data2;
/*分配简单变量
$v->name='haha';
/*分配多维数组*/
$data3=array(
'a1'=>array(1000,'a'),
'a2'=>array(1001,'b'),
'a2'=>array(1002,'c')
);
$v->arr3=$data3;
/*分配对象*/
$obj=new View();
$obj->name="尜尜";
$obj->sex="男";
$v->obj=$obj;
return $v->fetch('index');
模板中获取分配的数组以及对象
{$arr[0]}-{$arr[1]}-{$arr[2]}<br/>
<!-- 关联数组解析 -->
<!-- 方法一 -->
{$arr2['name']}----{$arr2['sex']}<br/>
<!-- 方法二 -->
{$arr2.name}----{$arr2.sex}
<hr>
<!-- 获取多维数组 -->
<!-- 方法一 -->
{$arr3['a2'][0]}<br/>
<!-- 方法二 -->
{$arr3.a1[1]}
<hr>
<!-- 获取分配过来的对象的内容 -->
{$obj->name}
四.模板中的比较标签
<h1><font color="blue">一.比较标签</font></h1>
<!--
(1)等于eq
(2)大于gt
(3)大于等于egt
(4)小于lt
(5)小于等于elt
(6)不等于neq
(7)恒等于heq
(8)不恒等于nheq
-->
<!-- 所有的比较标签用法都一样,区别就是判断条件不同,而且他们都能和else标签一起使用
而且对于所有的类型,name和value的赋值必须要加双引号!!!!!
-->
<!-- 当name的值大于value的值时输出相等,也可以和else混合使用-->
1.{eq name="$a" value="12"}
相等
{else/}
不相等
{/eq}
<hr>
<!-- 当name的值大于value的值 -->
2.{gt name="$a" value="5"}111{/gt}
<!-- 当name的值大于等于value的值 -->
3.{egt name="$a" value="5"}2222{/egt}
<!-- 判断一个恒等 -->
4.{heq name="$a" value="12"}
恒等于
{else/}
不相等
{/heq}
<hr>
<!-- 比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量 -->
<!-- 用对象的属性进行判断 -->
1.{eq name="obj->a" val