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.

     
  • 相关阅读:
    JSONObject,JSONArray,Map,String之间转换
    linux下,一个运行中的程序,究竟占用了多少内存
    利用VMware在虚拟机上安装Zookeeper集群
    30岁后职场改变
    Zookeeper客户端 CuratorFramework使用
    oracle 用户与表空间关系
    Docker Rest API使用入门
    docker 远程rest api 访问配置
    Oracle 用户、角色管理简介
    Oracle 参数文件及相关操作介绍
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12640363.html
Copyright © 2011-2022 走看看