- php中define定义常量的用法
- 如何分析网站日志
- $.extend()详解
- 什么是openid、unionid和用户基本信息?
- RequiredFieldValidator空值检验点击返回时不想检验怎做
- .net操作xml文件(新增.修改,删除,读取)
- 常用搜索引擎查询命令收集:site,intitle,and,or,domain,mp3,inur
- 九大SEO常用在线工具
- 扫盲啦,什么是百度沙盒?如何出百度沙盒?
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
邮箱:
手机:15383239821
thinkphp模型
1. 模型操作
php think make:model 模块名/模型名(首字母大写)
# 非必须
protected $pk = 'id'; # 设置主键名称
protected $table = 'think_user'; #设置当前模型对应的完整数据表名称
// 模型实例化
//$model = new Student();
$model = model('student');
1.1 添加数据
$data = $request->post();
## 添加方案一:
$model = new Student();
// 方式一:直接保存
$ret = $model->save($data);
// 方式二:过滤保存部分字段
$ret = $model->allowField(['title','name'])->save($data);
## 添加方案二:
$ret = Student::create($data);
1.2 更新数据
User::where('id',1)->update(['name'=>'thinkphp']);
1.3 删除数据
// 方式一:
$model = Student::find(217); 或 $model=Student::get(217);
$ret = $model->delete();
// 方式二 : 静态方法
$ret = Student::destroy(217);
// 删除多条
$ret = Student::destroy([1,2,3]);
6.4 软删除
use think\model\concern\SoftDelete
# mode类里面 引入:
use SoftDelete;
// 删除的字段名
protected $deleteTime = 'delete_time';
# 操作方法
// 软删除
$ret = Student::destroy(217);
// 真删除
$ret = Student::destroy(217,true);
6.5 trait 解决多继承 php5.4
6.6 模型查询数据
//get直接查询,不可以带 where 条件; find 两者都可以,推荐
$ret = Student::get(217);
$ret = Student::find(217); ## 推荐使用 find
$ret = Student::where('id',217)->find(); #这种只能使用find
// 条件分组 where() or ()
//查询
$ret = Student::where('title','我是张三')->select();
// 动态查询 getBy固定+ 字段名(首字母大写)
$ret = Student::getByTitle('我是张三');
6.7 获取器 对原始数据自动处理
// 方式一
$ret = Student::withAttr('title',function($value,$data){
return 'hello world'.$value
})->where('id','>',5)->select();
// 方式二 (在model 里面设置)-- 获取器 get字段名Attr,如果有下划线,下划线的首字母大写
public function getCreateTimeAttr($value){
return date('Y年m月d日 H时i分s秒',strtotime($value));
}
<?php
namespace app\common\model;
use think\Model;
class Student extends Model{
# 非必须
protected $pk = 'id'; # 设置主键名称
protected $table = 'student'; #设置当前模型对应的完整数据表名称
public function aa(){
return 'aab';
}
}
<?php
namespace app\index\controller;
use think\Controller;
// 引入模型
use app\common\model\Student;
use think\Request;
class Students extends Controller{
public function demo(){
echo '测试';
}
// 展示页面
public function page(){
return view('index@student/add');
}
// 通过 post传参,保存数据
public function add(Request $request){
// 模型实例化
//$student = new Student();
$student = model('student');
$value = $request->post();
// ---- 方法一 --------- 返回true
// 保留全部字段
$ret = $student->save($value);
// 过滤保存部分字段
//$ret = $student->allowField(['name','number'])->save($value);
// ---- 方法二 ------- 返回插入的数据
$ret = Student::create($value);
dump($ret);
}
//更新数据
public function upd(){
$data = ['content'=>'这条是更新数据'];
$ret = Student::where('id',22)->update($data);
dump($ret);
}
//删除数据
public function del(){
// 方式一:
// $model = Student::find(23);
// $model = Student::get(23);
// $ret = $model->delete();
// 方式二 静态方法
$ret = Student::destroy(22);
$ret = Student::destroy([1,2,3]);
dump($ret);
}
// 软删除 -- 在 model引入SoftDelete后,可进行软删除
public function delr(){
$ret = Student::destroy(20);
dump($ret);
}
// 模型查询数据 get直接查询,不可以带 where 条件; find 两者都可以,推荐
public function sele(){
// $ret = Student::get(19);
// $ret = Student::find(19);
// $ret = Student::where('id',19)->find();
// 条件分组 where() or ()
//查询字段
// $ret = Student::where('name','张三')->select();
// 动态查询 getBy固定+ 字段名(首字母大写)
$ret = Student::getByName('张三');
dump($ret);
}
// 获取器 对原始数据自动处理
public function getAll(){
$ret = Student::withAttr('name',function($value,$data){
return '你是最美的'.$value;
})->where('id',19)->select();
dump($ret);
}
}
-
2011-02-19DataTable.Select 方法 (String, String)
-
2019-11-15C#使用JavaScriptSerializer类实现序列化与反序列化得到JSON
-
2024-05-10npm 和 cnpm 的区别
-
2023-03-15mysql数据库使用工具Navicat for MySQL导入sql文件
-
2013-05-06Request.url用法
-
2014-02-22HTML 标签的 shape 属性
