1. tp 模型对象 查询数据
//一,获取一条数据 //1.传递闭包函数 /*$res = User::get(function($query){ $query->where('username','eq','user002') ->field('username,email'); });*/ //2. /*$res = User::where('id',2) ->field("id,username") ->find();*/ //二,获取多条数据 //3. /*$res = User::all("1,2,3"); //4. //$res = User::all(function($query){ $query ->where('id','<',5) ->field('id,email'); }); foreach($res as $val){ dump($val->toArray()); }*/ //5. /*$res = User::where('id','<',5) ->field('username,email') ->limit(2) ->order('id DESC') ->select(); foreach($res as $val){ dump($val->toArray()); }*/ //$res = $res->toArray(); //三,获取某个字段数据 //$res = User::where('id',10)->value('email'); //四,获取某一列字段数据 //$res = User;;column('email','username'); return $this->fetch();
二、 使用模型添加数据
//create()第二个参数,是允许插入的字段数组,(若设置为true,可以排除不能添加的字段) /*$res = User::create([ 'username' => 'user002', 'password' => md5('1234'), 'email' => '12345@email.com' ],true);*/ //使用userModel //返回值为保存的对象 /*$userModel = new User; $userMpdel->username = 'user021'; $userModel->email = '123456@email.com'; $userModel->save(); //或 //返回值为插入数据的行数 //allowField([字段1,字段2...]),允许插入的字段,,也可以设置true,过滤掉不需要的字段 //$userModel->allowField([字段1,字段2...])->save([ 'username' => 'user021', 'email' = '132456@email.com' ]); // */ //返回值为插入数据的对象数组 $userModel = new User; $res = $userModel->saveAll([ ['username'=>'user001'], ['username'=>'user002'], ['username'=>'user003'] ]); foreach($res as $val){ dump($val->toArray()); }
3. 使用模型更新数据
//update的参数中若存在主键,则更新主键为传递值的对象 //返回更新的对象 /*$res = User::update([ 'id' => 1, 'username' => 'user003' ]);*/ /*$res = User::update([ 'username' => 'user003' ],['id' => 1]);*/ //或 传递闭包函数 /*$res = User::update([ 'username' => 'user003' ],function($query){ $query->where('id','LT',2); });*/ //返回被更新的数据行数 /*$res = User::where('id','<',6) ->update([ 'username' => 'user003' ]);*/ //返回被更新的数据行数 /*$userModel = User::get(1); $userModel->username = '123'; $res = $userModel->save();*/ //save 传递第二参数,更新以第二个参数为条件的更新 //第二个参数 也可以设置为一个闭包函数 //返回值 为影响的行数 /*$userModel = new User; $res = $userModel->save([ 'email' => '123465@email.com' ],[ 'id' => 4 ]);*/ $userModel = new User; //返回值 为影响的行数 $res = $userModel -> saveAll([ 'id'=>1,'username'=>'user0002' ], [ 'id'=>2,'username'=>'user0003' ]); dump($res);
4.使用模型删除数据
//返回被删除的行数 //1.直接传主键值 //2.传递数组如 ['id'=>2] //3.传递闭包函数 /*$res = User::destroy(function($query){ $query->where('id','<',5); });*/ /*$userModel = User::get(2); $res = $userModel->delete();*/ $res = User::where('id','<',5) ->delete();
5.使用模型聚合操作
$res = User::count(); $res = User::where('id','>',10)->count(); $res = User::max('num'); $res = User::min('num'); $res = User::where('id','<',5)->max(num); $res = User::sum(num); $res = User::avg(num);
6. 模型获取器 --》 Model类中: get字段名Attr($val){}
$res = User::get(3); //获取经过模型获取器后的数据 dump($res->sex); $res->toArray(); //获取经过模型获取器后的数据 $res->getData();
7. 模型修改器 -》 Model类中: set字段名Attr($val){}
$auto 数据添加和更新都会进行操作 配合set字段名Attr($val){ return 操作; }
$insert 数据进行插入时进行操作 配合set字段名IndertAttr($val){ return 操作; }
$update 数据进行更新时发生操作 配合set字段名UpdateAttr($val){ return 操作; }
自动完成 -- 配合修改器使用
例如:
//先在model类内添加,需要自动完成字段数组 protected $auto = ['字段1','字段2']; public function set字段1Attr(){ return 处理字段1(); }
相关推荐
### 关系模型(The Relational Model) - **用户故事(User Stories)**:项目的第一步是定义用户故事,这些故事描述了系统的功能和需求。用户故事可以是简单的句子,如:“作为一个网站用户,我希望能够浏览和搜索...
MVC是一种软件设计模式,将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图负责显示数据,而控制器作为模型和视图之间的桥梁,接收用户的输入并...
- Model处理数据模型,View负责展示,Controller协调两者,使得开发更加模块化。 7. **PHP与Java交互**: - PHP可以通过JavaBridge或HTTP协议与Java应用程序通信,实现跨语言的集成。 8. **版本控制系统**: - ...
- **Model (模型)**: 代表数据层或业务逻辑层,处理数据的存储、检索等操作。 - **View (视图)**: 显示数据,负责用户界面的展示。 - **Controller (控制器)**: 接收用户输入,并调用相应的模型和视图来完成特定任务...
- **Model (模型)**: 负责管理应用程序的数据和业务逻辑。 - **View (视图)**: 负责呈现数据,即 UI 层。 - **Controller (控制器)**: 负责处理用户的输入,并更新模型和视图。 这种模式有助于提高代码的可维护性和...
- **Model**(模型):处理数据信息存取层,如数据逻辑处理等。 - **View**(视图):负责将应用的数据以特定的方式展现在界面上,即用户界面。 - **Controller**(控制器):负责从视图读取数据,控制用户输入,...
- **Model (模型)**: 负责存储和管理数据。 - **View (视图)**: 显示数据给用户。 - **Controller (控制器)**: 接收用户的输入并调用模型和视图完成用户的需求。 #### 21. 编写SQL语句获取members表中发帖数最多...
在PHP中,模型(Model)是用于处理数据的主要工具。当我们涉及到多表操作时,`hasOne` 和 `hasMany` 是两个非常关键的关联函数。 1. **hasOne** 关联:这种关系代表一对一的关系。例如,一个用户只有一个账户,可以...
- **Model**:模型代表应用的数据模型,负责数据的获取、验证和处理。 - **View**:视图是用户看到的页面部分,通常使用Prado的模板引擎创建。 遗憾的是,由于缺乏具体的代码示例,我们无法深入讨论这个特定的"day1...
这些框架通常遵循MVC(Model-View-Controller)开发模型,旨在简化开发过程并提高代码复用性。 然而,Web框架的安全性不容忽视。例如,SQL注入、XSS跨站脚本、CSRF跨站请求伪造、权限校验和OGNL对象图形导航语言...
- **模型(Model)**:负责处理业务逻辑和数据管理。 - **视图(View)**:负责展示数据给用户。 - **控制器(Controller)**:负责接收用户输入,并调用模型和视图完成业务流程。 #### 22. 写出发贴数最多的十个人名字的...
- Model(模型):处理数据和业务逻辑。 - View(视图):展示数据(模型)给用户。 - Controller(控制器):接收用户输入,处理事件,并调用模型和视图。 通过将应用程序按照MVC模式组织,可以更容易地管理代码,...
Recess框架采用了MVC(Model-View-Controller)设计模式,将应用逻辑分为模型(Model)、视图(View)和控制器(Controller)三大部分。 1. **控制器与视图的关系:** 控制器负责处理用户的请求并将数据传递给视图...
- **模型 (Model)**:负责管理应用程序的数据和业务逻辑。 - **视图 (View)**:负责呈现数据给用户,即 UI。 - **控制器 (Controller)**:负责处理用户的输入,并将数据传递给模型和视图。 - 这种架构有助于提高...
MVC(Model-View-Controller)模式将业务逻辑、数据模型和用户界面分离,提高代码的可维护性和可扩展性。 17. SQL查询发帖最多的人 ```sql SELECT username FROM members ORDER BY posts DESC LIMIT 10; ``` ...
MVC(Model-View-Controller)模式将应用程序分为模型、视图和控制器三部分,实现业务逻辑、数据展示和用户交互的分离。 22、写出发帖最多的十个人名字的SQL: 需要根据具体数据库结构编写,一般涉及`ORDER BY`和...
- **Model**:模型层,负责处理业务逻辑和数据。 - **View**:视图层,负责展示数据。 - **Controller**:控制器层,负责接收用户输入并调用模型和视图完成数据处理和展示。 #### 21. 发帖数最多的十个人的SQL ```...
- **模型(Model)**:负责数据管理和业务逻辑处理。 - **视图(View)**:展示数据,不包含任何业务逻辑。 - **控制器(Controller)**:处理用户输入,调用模型进行数据处理,并选择适当的视图来展示结果。 **...
- MVC模式将应用分为模型(Model)、视图(View)和控制器(Controller),实现业务逻辑与界面展示的分离。 22. **发帖数最多的十个人SQL** - 使用SQL查询,例如:`SELECT username FROM members ORDER BY posts ...