欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tp5常用部分整理(未完结)

程序员文章站 2024-03-21 14:19:10
...

目录

——————————

1.基本配置

分为全局配置,应用配置和模块配置。
全局配置:在thinkphp/convention.php,里面包含了所有默认配置项,一般不会进行修改
应用配置:application目录下的配置,个人喜欢在入口文件(public/index.php中进行配置新的config目录,不对application/config.php本身进行操作)。

define('CONF_PATH', __DIR__ . '/../config/');

模块配置:当前模块的独立配置,可放在application\模块名里面,同样命名为config.php

2.常用配置:

解析方式

// URL参数方式 0 按名称成对解析 1 按顺序解析
‘url_param_type’ => 0,

成对解析:
假如url带有参数,则:
http://xxx:xx/模块/控制器/操作/参数名1/参数值1/参数名2/参数值2…


顺序解析:
http://xxx:xx/模块/控制器/操作/参数值1/参数值2…


场景配置

配置参数: ‘app_status’ => ‘home’,
根据不同情况,此处配置值不同。每个场景根据名字进行单独配置,根据场景不同,修改此值即可。

  • 路由配置
    // 是否开启路由
    ‘url_route_on’ => true,
    // 是否强制使用路由
    ‘url_route_must’ => false,

url_route_on
true时可以使用route.php进行路由配置
false时route.php中的配置无效


url_route_must
true时必须使用route.php进行配置,没有配置的部分不能访问
false时如果网址进行了路由配置,则采用配置
如果没有进行路由配置,则采用原有无路由配置


3.路由配置

Route::get

get方法进行路由配置,同理配置post方法,例:

\think\Route::get('iii','index/index/index',['ext'=>'html']);

解析:
把路径为http://xxx:xx/index/index/index的路径改为:
http://xxx:xx/iii.html
其中ext代表后缀,第一个参数替换第二个参数的部分

\think\Route::rule('work/:name/[:job]','index/index/work','GET',['ext'=>'html'],['name'=>'\w{3,10}'],['job'=>'\w{1,10}']);

rule可以是任何网络传输方式,get和post都可以,需要修改第三个参数,

:xx
xx代表参数,需要与参数列表命名相同,此处可增加对参数的限制


[:xx]
方括号代表此参数xx可以不填写


此处可以使用正则表达式进行类型检查

\think\Route::group

分组:对于使用正则表达式限制输入后,可共用地址地址的一组数据,进行统一管理,例:

\think\Route::group(  'test',[
        ":var1"=>'test1',
        ":var2"=>'test2',
        ":var3"=>'test3',
    ],[
        'method'=>'get',
        'prefix'=>'index/index/'
    ],[
        'var1'=>'\d{2,4}',
        'var2'=>'[a-zA-Z]+',
        'var3'=>'0|1'
    ]

);

上面代码test1的参数叫var1,test2参数var2,test3参数var3,让它们共用http://xxx:xx/test地址,因为当参数为0到1位test3,参数为字母调用test2,参数为2-4位数字调用test1

\think\Route::alias

此处别名可批量路由,缺点是不能区分get,post:

 \think\Route::alias('test','\app\index\controller\Test',[
//    'allow'=>'add,sub'
    'except'=>'add,sub'
]);

优点是可设置黑白名单,灵活批量路由

#### \think\Route::bind

路由绑定,同级只支持一个,只能绑定最常用的,用于缩短访问网址,级别模块,控制器,操作中任意

\think\Route::bind('index');
\think\Route::bind('index/index');
\think\Route::bind('index/index/index');

4.数据库配置

在application的database.php,如果用场景配置,记得要进行二级配置,不然database直接指向数据库名,一直访问失败:

<?php

return[
    database=>[此处配置数据库参数],
];

里面的以下参数为比配置项

 // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '',
        // 数据库名
        'database'        => '',
        // 用户名
        'username'        => '',
        // 密码
        'password'        => '',
        // 端口
        'hostport'        => '',

5.数据库操作

语句查询

$sql = "select * from staff where name=?";
$result = Db::query($sql,['abc']);

或:

$sql = "select * from staff where name=:name";
$result = Db::query($sql,['name'=>'abc']);

$result为查询结果

SQL语句CRUD

//增
$sql = "insert into staff(name) VALUES ('hahaha')";
//改
 //$sql = "update staff set name='abc' where name = 'dyy'";
 //删
 //$sql = "delete from staff where name='hahaha'";

$result = Db::execute($sql);

因为方式相同,所以合起来写了,$result为影响的行数。

封装方式增删改查

查询模板:

Db::table('表名')->field(['列名','列名',...])->where('列名','符号','限制').select();

查询例子:

Db::table('user')->field(['name','age'])->where('age','neq','10').select();

以上为查询user表的name,age列,满足age10。

插入模板:

 $affected = Db::table('表名')
            ->insert([
                '列名'=>'列值',
                ...
            ]);

插入例子:

 $changed = Db::table('user')
            ->insert([
                'name'=>'秦始皇',
                'age'=>8000,
            ]);

修改模板:

$affected = Db::table('表名')
            ->where('列名','符号','值')
            ->update([
            '更新列'=>'修改值'
        ]);

修改例子:

$affected = Db::table('user')
            ->where('id','=',1)
            ->update([
            'name'=>'abc'
        ]);

删除模板:

$affected = Db::table('表名')
    ->where('列表','符号','限制')
    ->delete();
$affected = Db::table('user')
    ->where('id','>',5)
    ->delete();

实体

生成实体:
方式1:建立application下某模块下的model目录,内建立类,需要继承Model
方式2:使用php命令:php think make:model 模块名/类名

$staff = Staff::get(1)->getData();

相关标签: php thinkphp5