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.

     
  • 相关阅读:
    方法的重载理解
    JAVA 三种循环的总结
    模拟时间倒计时
    制作漂浮广告效果
    js+css+html实现抽奖小程序
    将系统时间转换为汉字表示的四种方法
    简单的导航栏
    模仿光标闪烁,光标移动,自动切换背景
    sublime插件emmet安装和使用
    现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12640363.html
Copyright © 2011-2022 走看看