TP5框架基础知识总结

本文详细介绍了ThinkPHP5框架的基础知识,包括开启调试模式、导入类库、URL和基本路由、定义路由、模板变量分配、模板比较标签的使用、查询构造器的操作等。通过实例展示了如何使用框架进行开发,如条件判断、循环输出、数据的增删改查等,是学习TP5的入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值