yii2 框架的 save() 方法 执行模式条件。

 save() 方法会调用 insert() 和 update() 中的一个, 用哪个取决于当前 AR 对象是不是新对象(在函数内部,他会检查 yii\db\ActiveRecord::isNewRecord 的值)。 若 AR 对象是由 new 操作符 初始化出来的,save() 方法会在表里插入一条数据; 如果一个 AR 是由 find() 方法获取来的, 则 save() 会更新表里的对应行记录。

时间: 2024-12-21 22:15:26

yii2 框架的 save() 方法 执行模式条件。的相关文章

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

应用程序框架实战二十五:查询条件(规约模式应用)

前面已经做了一些准备工作,本篇将介绍查询条件的封装,它是规约模式的一个应用. 规约使用一个对象来封装谓词,我之前已经介绍过它在验证方面的应用,本篇是规约模式在查询方面的应用. 规约的强大之处在于,能够将一堆杂乱无章的条件判断或查询条件封装起来,以一个清晰的概念来表达,并使得这些谓词具备了可复用的能力. 首先在Util.Domains项目的Repositories目录中创建ICriteria接口,这个接口表示一个查询条件,代码如下. using System; using System.Linq.

ThinkPHP5.0更改框架的验证方法:对象->validate(true)->save();

我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $Teacher->validate(true)->save($Teacher->getData()); 原因很简单的,上面的写法才是真正的面象对象.正确的思想是:我们给一个对象赋值,然后对这个对象进行验证.显然,上面的写法更贴近我们的真实想法. ThinkPHP是一个开源的软件,我们可以在Gi

Yii2的save()方法容易出错的地方

如果save()返回true, 但是数据没有保存成功,则应该是开启了事务且已经回滚 如果save()返回false, 则使用$model->errors查看错误原因 可以设置$model的场景,对具体的场景进行验证; 没有指定场景的验证规则会在所有的场景通用 save()方法有两个参数,第一个参数为是否开启验证,第二个字段为验证的字段,但是会调用beforeBValidate() 源码如下所示: public function save($runValidation = true, $attri

Yii2框架那些折磨人的坑

说点闲话 距离上次写博客,已经有一年了.在动手写之前,总是带着深深的罪恶感.被它折磨许久,终于,还是,动手了. 值得庆祝的一件事:最近开始健身了.每天动感单车45分钟,游泳45分钟,真的是(生)爽(不)到(如)爆(死). 好了,扯淡完毕,步入正题. ActiveRecord被莫名写入? 准备知识 ActiveRecord的基本用法.如果不理解,可参考这里. 代码现场 /** * @property integer $id * @property string $name * @property

YII2框架的安装

之前yii是直接下载的,给cookieValidationKey的值既可以用了,就没在意在线安装的形式.后来发现有些扩展什么的安装配置不好弄. 所以官网推荐composer来安装,只需执行一条简单的命令就可以安装新的扩展或更新 Yii 了. 在网上看了很多人都倒在了这个安装上面,但是安装貌似也不难.总是些菜鸟在上面自己提问题自己回答的,问百度被误导了好多次,哎. 1.下载安装composer 一般人做项目还是在windows操作系统上,所以记录的是windows版本的安装. 条件1:电脑上有ph

【Laravel5.0框架】路由方法总结

Laravel 中的路由,跟其他 PHP 框架一样,作用是把各种请求分流到各个控制器. 最简单的路由由一个 URI 和一个闭包调用组成. 路由文件在:`learnlaravel5/app/Http/routes.php` : 基本 GET 路由 Route::get('/', function() { return 'Hello World'; }); 基本 POST 路由 Route::post('foo/bar', function() { return 'Hello World'; });

框架 day37 Spring3,AOP,代理模式(动态/CGLIB/工厂bean),传统AOP,AspectJ框架(基于xml/注解),切入点表达式,jdbcTemplate

1     AOP 1.1   什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. * AOP采取横向抽取机制,取代了传统纵向继承体系

[PHP]Yii2框架的坑

[PHP]Yii2框架的坑.md-/Users/zjh/Documents/我的文章/[PHP]Yii2框架的坑 html{font-family: sans-serif;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body{margin: 0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{displ