一、创建模型
表前缀设置: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示例:
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示例:
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 '
' . print_r($test,true).'
';
}
}
7、模型 只读字段Model示例:
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示例:
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 '
' . print_r($test,true).'
';
}
}
8、模型 软删除
软删除功能,需要引入 SoftDelete use think\model\concern\SoftDelete;
类中引入 use SoftDelete;
需要创建一个 delete_time 字段
软删除的删除操作仅对模型的删除方法有效Model示例:
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.'
');
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.'
');
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 目录