php贯穿知识点的项目,ThinkPHP6模型知识点、杂项、命令行总结——2019年8月27日...

一、创建模型

cef0080faadd42407e2ab3718e930742.png

表前缀设置: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;

}

}

8d712f7f6b1c221464ce518c095d5e31.png

使用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();

}

}

804996ff30ef4ab91b57e3f212250344.png

3862cea9dedae76f71f85cc91e60d9d1.png

aa01a6aee0b430ac5d57bddd0c3f6ddb.png

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 目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值