首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过 Laravel 查询构建器实现复杂的查询语句

有时候,我们想要获取的并不是一行或几行记录,而是某个字段的值,你当然你可以查询到一行记录后从结果对象中获取指定字段的值,但是 Laravel 为我们提供了更便捷的语法: $name = '学院君'; $...你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题,在 Laravel 中,我们只需在查询构建器上调用...注意,我们在传递参数到 pluck 方法的时候,键对应的字段在后面,值对应的字段在前面。...in查询 IN 查询也很常见,比如我们需要查询的字段值是某个序列集合的子集的时候。...null查询 NULL 查询就是判断某个字段是否为空的查询,Laravel 查询构建器为我们提供了 whereNull 方法用于实现该查询: DB::table('users')->whereNull(

30.2K20

Laravel Eloquent 模型关联关系(下)

注:实际开发中为了提高查询性能,我们往往是在 posts 表中冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。...($query) { $query->where('content', 'like', 'Laravel学院') ->orderBy('created_at', 'desc')...,这样做的好处是不需要指定关联模型与父模型的外键关联字段值,Eloquent 底层会自动判断并设置。...空对象模型 如果外键字段 user_id 允许为空的话,当我们访问 Post 模型上的 author 属性时,默认返回为 null。...有时候,你可能仅仅是想要更新中间表字段值,这个时候,可以通过 updateExistingPivot 方法在第二个参数中将需要更新的字段值以关联数组的方式传递过去: $post->tags()->updateExistingPivot

19.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .Net中集合排序还可以这么玩

    StockQuantities.OrderBy(u=>u.Status) 错误, 该排序得规则不仅仅会考虑Status是否为空,还会考虑Status的内容。...然道还有比这更好的代码? 给同事倒了一杯茶,点了一根烟,虚心请教。 大佬做法: 同事给我讲了两招,分别是条件排序、多级排序。 什么是条件排序,怎么用? 1.   ...StockQuantities.OrderBy(u=>u.Status==null) 这就是条件排序,可是咋一看,给人一种是把Status为空的排前面,不为空的排后面的错觉。...其实不然,我们看到OrderBy里面的一个返回值为bool类型的表达式,该排序先排结果为0(false)的,再排结果为1(true)的。...这种排序只考虑返回的bool值,不考虑参数的具体值,所以姑且称它为条件排序。 完全符合排序规则1的要求。 什么是多级排序,怎么用? 2.

    69450

    laravel生成无限级分类

    尤其当分类数据和层级多时,一个糟糕的算法将使服务器不堪重负 以下用laravel实现无限级分类功能,包括: 数据表设计 填充模拟数据 生成分类树 分类树的后台维护 数据表设计 字段名 描述 id 主键id...目录树 场景1:查询蓝牙耳机的所有祖先类目 根据path字段的值获取其祖先id为[1, 2],用 Category::whereIn('id', [1, 2])->orderBy('level')->get...id值 if (strpos($highLevelPath, $lowLevelPath) === 0) { // 判断蓝牙耳机的path值是否以移动电源的path值为开头 echo '存在层级关系...过滤两端的 - $path = explode('-', $path); // 以 - 为分隔符切割为数组 $path = array_filter($path); // 过滤空值元素...->push($this->name) // 追加当前类目的name字段到数组末尾 ->implode(' - '); // 用 - 符号将数组的值组装成一个字符串

    2.9K40

    通过 Request 对象实例获取用户请求数据

    而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工具集,从收集、验证、到过滤、编排,可谓是一应俱全,接下来,我们将通过三四篇教程的篇幅来为你详细介绍如何在 Laravel...项目中处理用户请求,首先,我们从收集用户请求数据开始。...获取指定请求字段值 上面我们已经给出了获取指定字段值的一个方法 get,该方法只能获取通过 GET 请求传递的参数,同理,如果是 POST 请求的话,我们可以通过 post 方法获取对应字段值,此次之外...('name'); 我们还可以为 input 方法传递第二个参数作为默认值,如果请求字段为空的话,则使用该默认值: $site = $request->input('site', 'Laravel学院...获取 JSON 输入字段值 随着基于 JavaScript 的单页面应用(SPA)应用的流行,除了传统表单请求提交的 POST/GET 数据之外,JSON 格式的请求数据也越来越常见,Laravel 支持对

    19.8K30

    【Laravel系列4.3】模型Eloquent ORM的使用(一)

    对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...里面的东西是什么,则是根据我们的 MTest 这个 Model 里面的 sex 字段的值来确定的,也就是 $this->child->{$this->foreignKey}这一段。...这个参数是可选的,如果不填,它会默认找一个叫做 sex_id 的值,当然,在我们的数据中是没这个字段的,所以我们指定为 sex 。...其实这段代码已经很清楚明了了,如果没有 key 就返回一个空的内容,如果 key 存在于当前这个模型类的相关属性中,则调用一些处理方法后返回。...其实就是第一个参数是一个值,然后把它放到第二个参数中,这个参数是一个回调函数,然后通过回调函数来使用这个值进行其它的操作。这一段可能说得不太清楚,大家可以自己查看源代码然后调试一下就明白了。

    8.9K20

    Laravel Validation 表单验证(二、验证表单请求)

    nullable 验证字段可以为 null。这在验证基本数据类型时特别有用,例如可以包含空值的字符串和整数。 numeric 验证字段必须为数值。...required 验证的字段必须存在于输入数据中,而不是空。如果满足以下条件之一,则字段被视为「空」: 值为 null 。 值为空字符串。 值为空数组或空 Countable 对象。...value1) ,则此验证字段必须存在且不为空。...anotherfield 不等于任一值 value ,则此验证字段必须存在且不为空。...至于它到底是缺失还是空值这取决于你。 隐式规则对象 如果你想要在属性为空时执行规则对象,你应该实现 Illuminate\Contracts\Validation\ImplicitRule 接口。

    29.3K10

    妙用MyBatis-Plus,12个实战技巧解锁新知识

    NULL值会使索引失效,导致MySQL无法使用索引进行查询优化 NULL值的比较需要特殊的处理逻辑,增加了CPU开销 NULL值会占用额外的存储空间,影响数据压缩效率 明确Select字段 // ❌...原因: EXISTS是基于索引的快速查询,可以使用到索引 EXISTS在找到第一个匹配项就会停止扫描 IN子查询需要加载所有数据到内存后再比较 当外表数据量大时,EXISTS的性能优势更明显 使用orderBy...wrapper.last("ORDER BY FIELD(status, 'active', 'pending', 'inactive')"); // ✅ 推荐:使用 Lambda 安全排序 wrapper.orderBy...::getDeleted, false) // 默认查询未删除记录 .orderByDesc(User::getCreateTime); // 默认按创建时间倒序 原因: 优雅处理空值...当你掌握了这些技巧,你的代码将不再是简单的指令堆砌,而是一首优雅的诗,一曲悦耳的交响乐。它们将像外婆的羊肉汤一样,散发着独特的魅力,让人回味无穷。

    12310

    sql2java-excel(二):基于apache poi实现数据库表的导出的spring web支持

    (字段名)字体名 headerFontHeight Integer 16 首行(字段名)字体高度 headerFontColor IndexedColors BLACK 首行(字段名)字体颜色 headerFillColor...注解类字段说明如下: 字段名 默认值 说明 sort Integer.MAX_VALUE 导出时该字段在excel中的排序 columnName 对象(Java Bean/Map/JSON)中的字段名...(字段名)字体名 headerFontHeight 16 首行(字段名)字体高度 headerFontColor BLACK 首行(字段名)字体颜色,参见 org.apache.poi.ss.usermodel.IndexedColors...,字段的默认值 includeColumns {} 字段输出白名单,在此名单中的字段会被输出,同时指定白名单和黑名单时以白名单为准 excludeColumns {} 字段输出黑名单,在此名单中的字段不会被输出...三个位置都定义的name字段,遵循服务方法(Method)>类(Class)>字段(Field)优先顺序覆盖低优先级的值。

    1.6K40

    WordPress 内置的数组处理相关函数大全

    AND,还有 OR 和 NOT 这两个参数,意思是 args 参数中的 key=>value 由多个的时候的比较方式,AND 就是所有都要相等,OR 只要一组值相等即可,NOT 所有的值都不相等才行。...wp_list_pluck wp_list_pluck( $list, $field, $index_key = null ) 从对象(或者数组)列表中每个元素中去某个字段组成一个新数组,最后一个参数是新数组的元素...list, $args = array(), $operator = 'and', $field = false ) 这个函数就是先 wp_filter_list 操作,然后如果 field 参数值不为空,...wp_list_sort wp_list_sort($list, $orderby = array(), $order = 'ASC', $preserve_keys = false) 根据 orderby...关于 WordPress 内置的函数,我目前收集到就是那么多,如果你有发现什么好的函数也可以留言告诉我。

    1.4K30
    领券