月度归档:2018年08月

删除文件

加入del键 删除不unlink文件,去除 预记录比对值 用于下次添加! (已经完成)

wordpress 函数?

钩子?自定义函数?

Thinkphp5 埋坑

ROOT_PATH 项目个根目录;public或者app的上一层目录

halt($info)  调试

模版显示及JSON返回

return $this->fetch();

return json($arr);

Session

think\Session

Session::set('name','thinkphp');
Session::get('name');
// 判断(当前作用域)是否赋值
Session::has('name');
// 判断think作用域下面是否赋值
Session::has('name','think');
// 取值(当前作用域)
Session::get('name');
// 取值think作用域
Session::get('name','think');
// 删除(当前作用域)
Session::delete('name');
// 删除think作用域下面的值
Session::delete('name','think');
// 指定当前作用域
Session::prefix('think');
// 取值并删除
Session::pull('name');#不存在返回Null
// 清除session(当前作用域)
Session::clear();
// 清除think作用域
Session::clear('think');

助手函数 session()

// 赋值(当前作用域)
session('name', 'thinkphp');

// 赋值think作用域
session('name', 'thinkphp', 'think');

// 判断(当前作用域)是否赋值
session('?name');

// 取值(当前作用域)
session('name');

// 取值think作用域
session('name', '', 'think');

// 删除(当前作用域)
session('name', null);

// 清除session(当前作用域)
session(null);

// 清除think作用域
session(null, 'think');

助手函数input[/d整数 /f浮点 /s字符串 /b布尔值 /a数组]

$id=input(‘param.id’);GET或者POST

$id=input(‘get.id/d’);#强制转换为数字

$id=input(‘post.id/s’);#强制转换为字符串

文件上传:

$file = request()->file(‘video’);
if($file){
$info = $file->validate([‘size’=>’602400000′,’ext’=>’mp4’])->move(ROOT_PATH . ‘public’ . DS . ‘video’);#上传文件 设置大小,格式,移动到位置
    if($info){
        $info->getSaveName();#文件名
        $file->getInfo()[‘name’];#文件名 去除扩展名
    }
}
表达式 含义
EQ、= 等于(=)
NEQ、<> 不等于(<>)
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、< 小于(<)
ELT、<= 小于等于(<=)

模版

模型生成

namespace app\index\model;

class User extends \think\Model
{
    // 设置当前模型对应的完整数据表名称[可以用$table设置表,或者$connection设置连接新的数据库]
    protected $table = 'think_user';
    
    // 设置当前模型的数据库连接
    protected $connection = [
        // 数据库类型
        'type'        => 'mysql',
        // 服务器地址
        'hostname'    => '127.0.0.1',
        // 数据库名
        'database'    => 'thinkphp',
        // 数据库用户名
        'username'    => 'root',
        // 数据库密码
        'password'    => '',
        // 数据库编码默认采用utf8
        'charset'     => 'utf8',
        // 数据库表前缀
        'prefix'      => 'think_',
        // 数据库调试模式
        'debug'       => false,
    ];
}
protected function initialize()
    {
        //需要调用`Model`的`initialize`方法
        parent::initialize();
        //TODO:自定义的初始化
    }

//自定义初始化
    protected static function init()
    {
        //TODO:自定义的初始化 仅实例化开始才运行
    }

控制器中调用需要使用use app\index\model\User as ModelUser;

modeluser=new ModelUser;

默认值

{$mina|default=’123′}如果$mina不存在则设置默认值123;

模型

use think\Db;

where查询条件

$where[‘mlo|lo’]=[‘>’,0];

$where[‘lon’]=1090;

$infoselect=Db::name(‘table’)->where($where)->where(‘valuea=valueb’)->whereOr($whereOr)->select();

whereOr() 添加一个or并列条件

find(); false 或者 一个数组

select();必须:count($infoselect)如果false那就是没有数据

count();查询数字个数

insertGetId($data);插入值 返回ID

insertAll($list);插入多个

insert($one);true/false

update($up);

delete($info);

order(‘time’,’desc’)

field(‘id,name,book’)

 

 

Group 分组

$info=Db::name(‘daily’)->where($where)->field(‘did,day,time,max(count)’)->group(‘day’)->select();
其中有一个列的名称为$info[‘max(count)’] 为count中最大的一个

分页

$list=Db::name(‘table’)->where($where)->paginate( 10 )
模版中 $list 可以直接用foreach 或者volist
<div class=’list-inline’>$list->render()</div> 显示页码
$list->total() 显示总数

多表查询 join

$ne=Db::name(‘video’)->alias(‘a’)->join(‘table_start s’,’a.fid=s.object_id and a.del<>0′,’RIGHT’)->where($where)->order(‘s.count’,’desc’)->limit(6)->select();
alias()来分配第一个表名
join()来添加另一个表,’table_b b’,设置表名;’a.fid=s.object_id and a.del<>0’设置相同值;RIGHT[以后表为主] LEFT[以前表为主]

跨控制器调用

直接调用绝对路径,生产对象
$model=new \app\index\controller\User;
$model->look();
在控制器创建前,使用USE加入
use app\index\controller\User as bbk;#可以使用别名防止同名问题
……
$model2=new bbk;
echo $model2->index();
直接使用controller函数
$model3=controller(‘Admin/User’);#跨应用
echo $model3->index();

Redis

使用原生redis
$redis=new\Redis;
$redis->connect(‘127.0.0.1’,6379);
其余就是通用方法