zoukankan      html  css  js  c++  java
  • laravel字段排除功能

    laravel字段排除功能

    一、总结

    一句话总结:

    字段排除功能可以不需要,需要查啥自己手动写在sql里面

    首先你要知道你表里所有的字段,这样才能进行排除。知道表里的所有字段的方式我能想到的有两种,一种是写死在你的 Model 里,还有一种是去数据库查询一遍。两种都有弊端.

    第一种写死,如果你数据库有添加字段,是需要人工维护到程序里的,这样跟你自己手动在 Sql 里进行添加没有什么两样了,而且你数据库里结构发生变化证明有功能变更,这个时候你之前的 Sql 可能也会增加一些排除的字段或者有其他的变更,这样就要维护两份数据,不如在变更需求的时候直接变更之前手写的 Sql.

    第二种程序进行查询,显然这会让你每次的查询 Sql 增加一条,当然你也可以加一个缓存来减少 Sql 的查询,不过要在数据库结构发生变更的时候记得清理缓存,否则会出现奇奇怪怪的 Bug.

    二、laravel字段排除功能

    转自或参考:ORM 查询如何排除某个字段?如只排除 content 文本,其它字段都查询 | Laravel China 社区
    https://learnku.com/laravel/t/3975/orm-query-how-to-exclude-a-field-if-only-the-content-text-is-excluded-the-other-fields-are-query

    1、问题

    ORM 查询如何排除某些字段?如只排除 content 文本,其它字段都需要。

    $data = Content::where('pid',1)->get(['id','title','time', ...]);`
    这么写感觉很笨,有没有直接排除 content 字段,其它字段都要查询的方法呢?

    2、说明

    先说结论:我认为,需要查啥自己手动写在 Sql 里.

    Mysql 并没有提供排除的查询方式,所以你要这样查询,无论是你人工做这个事儿还是程序自动帮你算出来要查询的字段,总之是要进行一步转换的.

    那么我们就来说说程序怎么进行转换.

    首先你要知道你表里所有的字段,这样才能进行排除。知道表里的所有字段的方式我能想到的有两种,一种是写死在你的 Model 里,还有一种是去数据库查询一遍。两种都有弊端.

    第一种写死,如果你数据库有添加字段,是需要人工维护到程序里的,这样跟你自己手动在 Sql 里进行添加没有什么两样了,而且你数据库里结构发生变化证明有功能变更,这个时候你之前的 Sql 可能也会增加一些排除的字段或者有其他的变更,这样就要维护两份数据,不如在变更需求的时候直接变更之前手写的 Sql.

    第二种程序进行查询,显然这会让你每次的查询 Sql 增加一条,当然你也可以加一个缓存来减少 Sql 的查询,不过要在数据库结构发生变更的时候记得清理缓存,否则会出现奇奇怪怪的 Bug.

     
  • 相关阅读:
    太tmd恐怖了,一个搞破解的过程分析。
    JQuery爱好者们的福音:jQuery EasyUI 开源插件套装 完全替代ExtJS
    期待5月的灿烂阳光
    2010 2月记
    JQuery 的跨域方法 可跨任意网站
    准备写个ASP.NET MVC 2开发的系列文章
    Win7 访问网络共享文件夹显示空白目录的问题解决
    4月的长沙
    将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程
    谈谈年底感想
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12640363.html
Copyright © 2011-2022 走看看