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');
Session::has('name','think');
Session::get('name');
Session::get('name','think');
Session::delete('name');
Session::delete('name','think');
Session::prefix('think');
Session::pull('name');#不存在返回Null
Session::clear();
Session::clear('think');
助手函数 session()
session('name', 'thinkphp');
session('name', 'thinkphp', 'think');
session('?name');
session('name');
session('name', '', 'think');
session('name', null);
session(null);
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
{
protected $table = 'think_user';
protected $connection = [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'thinkphp',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => 'think_',
'debug' => false,
];
}
protected function initialize()
{
parent::initialize();
}
protected static function init()
{
}
控制器中调用需要使用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);
其余就是通用方法