一、创建模型
表前缀设置:config/database.php 文件里 prefix
1、单项目模型创建
第一步:创建一个跟控制器平级的目录,目录名:model
第二步:在 model 创建 Admins.php 文件
2、多项目模型创建
第一步:在 index 项目中创建目录,目录名:model
第二步:在 model 创建 Admins.php 文件
controller控制器公用示例: namespace app\index\controller; use app\BaseController; //引入模型 use app\index\model\Admins; class Index extends BaseController{ public function index(){ $db = new Admins(); $index = $db->index(); print_r($index); } }
模型文件里的自定义方法,不要和 thinkphp 方法一样名称
模型里访问用 Admins:: 也可以用 static:: 关键词
model示例: namespace app\index\model; //引入模型 use think\Model; class Admins extends Model{ public function index(){ $select = Admins::select(); $select = Admins::select([1]); $select = Admins::where('id','>',1)->select(); return $select; } }
使用search属性时,mysql类型根据php数据类型定义,如果是json类型直接定义为json即可
saveAll 批量添加或修改数据
演示:
model示例: namespace app\index\model; use think\Model; class Admins extends Model{ //protected $name = 'User'; //protected $table = 'user'; protected $pk = 'uid'; protected $schema = [ 'uid' => 'int', 'u_name' => 'string' ]; public function index(){ $select = Static::select(); return $select; } }
controller示例: namespace app\index\controller; use app\BaseController; use app\index\model\Admins; //渲染到视图需引入视图文件 // use think\facade\View; class Index extends BaseController{ public function index(){ $db = new Admins(); $index = $db->index(); print_r($index); //渲染到视图 // $db = new Admins(); // $index = $db->index(); // View::assign('index',$index); // return View::fetch(); } }
6、模型 检查数据
必须使用数据集对象的 isEmpty 方法判断
Model示例: <?php namespace app\pc\model; use think\Model; use think\model\concern\SoftDelete; class admins extends Model { public function index() { //模型检查数据 $admins = Admins::where('id',1)->select(); if($admins->isEmpty()) { echo '数据集为空'; } } }
Controller示例: <?php namespace app\pc\controller; use app\BaseController; use think\facade\View; use app\pc\model\admins; class admin extends BaseController { public function index() { $db = new Admins(); $test = $db->index(); return $test; //echo '<pre>' . print_r($test,true).'<br>'; } }
7、模型 只读字段
Model示例: <?php namespace app\pc\model; use think\Model; use think\model\concern\SoftDelete; class admins extends Model { //模型只读字段 protected $readonly = ['username']; public function index() { //模型只读字段 $admins = Admins::update(['username'=>'ouyangke'],['id'=>2]); return $admins; } }
Controller示例: <?php namespace app\pc\controller; use app\BaseController; use think\facade\View; use app\pc\model\admins; class admin extends BaseController { public function index() { $db = new Admins(); $test = $db->index(); return $test; //echo '<pre>' . print_r($test,true).'<br>'; } }
8、模型 软删除
软删除功能,需要引入 SoftDelete use think\model\concern\SoftDelete;
类中引入 use SoftDelete;
需要创建一个 delete_time 字段
软删除的删除操作仅对模型的删除方法有效
Model示例: <?php namespace app\pc\model; use think\Model; use think\model\concern\SoftDelete; class admins extends Model { //模型软删除 use SoftDelete; protected $deleteTime = 'delete_time'; protected $defaultSoftDelete = 0; public function index() { //模型软删除 $admins = Admins::destroy(3); return $admins; } }
9、杂项
1.创建公用方法
app/common.php在这里创建公用方法;
app/common.php 示例: /** * 取某天零点时间戳(本地时间) * @param number $time 欲获取当日的时间戳 * return number 这天零点时间戳 */ function getZeroTime($time){ // Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 $timezone = date('Z', $time); $time += $timezone; $time = $time - $time % 86400 - $timezone; return $time; }
controller示例: namespace app\index\controller; use app\BaseController; class Index extends BaseController{ public function index(){ $time = getZeroTime('1561785828'); print_r($time.'<br/>'); print_r(date('Y-m-d H:i:s',$time)); } }
2、创建共用类方法
BaseController 示例: /** * 取某天零点时间戳(本地时间) * @param number $time 欲获取当日的时间戳 * return number 这天零点时间戳 */ public function getZeroTime($time){ // Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 $timezone = date('Z', $time); $time += $timezone; $time = $time - $time % 86400 - $timezone; return $time; }
controller示例: namespace app\index\controller; use app\BaseController; class Index extends BaseController{ public function index(){ $time = $this->getZeroTime('1561785828'); print_r($time.'<br/>'); print_r(date('Y-m-d H:i:s',$time)); } }
ThinkPHP6 内置命令
1、启动服务器
ThinkPHP6 内置了 web 服务器,不需要安装环境就可以使用
第一步:打开 windows 自带的命令行工具 cmd
第二步:进入 ThinkPHP 根目录
第三步:命令行输入 php think run 启动服务器
如果开启成功可以直接访问网址:http://127.0.0.1:8000
2、查看版本
命令行输入 php think version
2、自动生成应用目录
第一步:在 app 目录下创建 build.php 文件
示例: // __file__ 表示生成文件(默认会生成common.php、middleware.php、event.php和provider.php文件,无需定义) // __dir__ 表示生成目录(支持多级目录) // controller 表示生成控制器类 // model 表示生成模型类 // view 表示生成模板文件(支持子目录) return [ // 需要自动创建的文件 '__file__' => [], // 需要自动创建的目录 '__dir__' => ['controller', 'model', 'view'], // 需要自动创建的控制器 'controller' => ['Index'], // 需要自动创建的模型 'model' => ['User'], // 需要自动创建的模板 'view' => ['index/index'], ];
第二步:在命令行输入:php think build admin
成功后,就可以看到 app 目录下出现 admin 目录