phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?

phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?

//更新
        $rs = Blog::find(array('id IN ( 1,2,3,4,5 )'));
        $aSet = array(
            'status' => 1,
        );
        $rs->update($aSet);

那么在SQL执行的时候会是这样

update blog set status=1 where id = 1
update blog set status=1 where id = 2
update blog set status=1 where id = 3
update blog set status=1 where id = 4
update blog set status=1 where id = 5

如果我更新的纪录包含了一万条,那他不是要执行一万条纪录?
我在不少群里面咨询过大家,大家在phalcon基本上都是直接用sql

我在网上有查过英文资料,最后查到框架作者的相关回复大意是一个model就是一条纪录,如果更新多条纪录的话,其实就是更新多个model,为了保证model的完整性或是什么的,所以必须单独进行

我真不知道应该怎么理解作者的想法了

慕田峪7331174
浏览 960回答 1
1回答

三国纷争

官方文档有这么一句: 每个模型的实例对应一条数据表中的记录。可以方便的通过读取对象的属性来访问相应的数据。 我的理解是。可以通过model类的结构来看,里面定义了表的字段为属性,通过实例化的model可以轻易地访问或者修改属性,比如User->id。所以model实例里面的属性应该都是相关联和绑定到一条数据的,不会出现一个model实例获取id时,可以有很多个id。而且geter/seter也是一个延伸。以及,为什么会有find和findfirst呢?为什么是first不是all,只取一条? 这应该是一个对于model层的理解问题。所以在涉及批量操作的时候,可以用其他的操作方式来搞,phalcon也提供了PHQL。
打开App,查看更多内容
随时随地看视频慕课网APP