yii2 的Cmodel的验证数据规则非常强大,我非常喜欢....
public function rules() {
 return [ ['xxx'],'xxx','message'=>'xxxx'  ];
}
但却不喜欢YII2的执行SQL的方法,因为SQL语句基本要写原生的
但我确认喜欢cakephp的数据库的封装的数据库的操作方法,非常好,不需要自己在写原生的SQL,都把原生SQL的语句封装好了
但却不喜欢CAKEPHP的传参都要用多位数组来写...但却喜欢TP的那种连贯写法,但是封装的没CAKEPHP的那么强大
唉....三种框架都有自己的优点的写法和缺点的写法

解决方案 »

  1.   

    那么你就把你认为的优点融合在一起.说到TP 我要吐槽,最近我们有个服务器给注入就是因为TP 的I方法根本就是摆设,但是之前我自己测试过却又是可以过滤的,最可怕的就是这种突然就失效的问题 。
      

  2.   

    楼主,yii2用得不熟吧,谁说yii2基本写原生sql的?AR基本可以不用写sql,用command时写原生的会多一些,效率不是也更高吗?更灵活? 复杂查询必须用command。原生sql就是爽啊,我觉得这是yii2的一大优点!!
      

  3.   

    你所谓的TP连贯写法,yii2也可以啊,好好看看guide和API,yii2相当强大和稳定。
      

  4.   

    写原生SQL语句执行效率更高,但是YII2封装的数据库操作真的没cakephp那么强大
      

  5.   

    嗯。。知道有,但是yii2查询语句与删除语句可以连贯操作,但是其他就不行
      

  6.   

    一般用框架 都是为了代码规范性进行统一
         写原生SQL语句...感觉就有点混乱了.....既然封装了数据操作为何不封装更合理一些..一定要 一些使用原生... 一些使用封装的操作吗?  这个感觉有点坑
      

  7.   

    ORDBMS 前一阵子很流行,但由于技术上的不成熟,仅在 Java 重写的 Oracle 中得到部分实现
    目前讨论的人要少的多了,可能会进入务实阶段,不得而知那些所谓连贯操作的数据库封装,就是形式上套用 ORDBMS 的产物
    由于并未改变关系型数据库的基础,所以最终还是翻译成立 SQL 指令去执行
    见过很多这种封装的讨论,发现他的软肋在关联查询。关联查询是关系型数据库特有的,NoSQL 中并不存在这个概念。鞋不合适,脚怎么能舒服呢与其每次都写一堆代码(虽然连贯成了一行)去执行一个查询,倒不如直接书写 SQL 指令来的直接
    关联查询一般比较灵活、复杂,手工书写也比较困难,但如果疯长的数据库类也不能很好的解决的话,封装就成了鸡肋好多框架将关联查询处理成巢状数组,这对实际应用并无影响,但并不符合大多数人的认知习惯(毕竟一开始接触的都是关联型数据库,是平面的联系而不是立体的)
      

  8.   

    照你这么说,封装SQL 都是鸡肋,那我还不如写原生代码算了,何必自讨苦吃去用框架呢