有时候,我们想要获取的并不是一行或几行记录,而是某个字段的值,你当然你可以查询到一行记录后从结果对象中获取指定字段的值,但是 Laravel 为我们提供了更便捷的语法: $name = '学院君'; $...你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题,在 Laravel 中,我们只需在查询构建器上调用...注意,我们在传递参数到 pluck 方法的时候,键对应的字段在后面,值对应的字段在前面。...in查询 IN 查询也很常见,比如我们需要查询的字段值是某个序列集合的子集的时候。...null查询 NULL 查询就是判断某个字段是否为空的查询,Laravel 查询构建器为我们提供了 whereNull 方法用于实现该查询: DB::table('users')->whereNull(
注:实际开发中为了提高查询性能,我们往往是在 posts 表中冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。...($query) { $query->where('content', 'like', 'Laravel学院') ->orderBy('created_at', 'desc')...,这样做的好处是不需要指定关联模型与父模型的外键关联字段值,Eloquent 底层会自动判断并设置。...空对象模型 如果外键字段 user_id 允许为空的话,当我们访问 Post 模型上的 author 属性时,默认返回为 null。...有时候,你可能仅仅是想要更新中间表字段值,这个时候,可以通过 updateExistingPivot 方法在第二个参数中将需要更新的字段值以关联数组的方式传递过去: $post->tags()->updateExistingPivot
下面是翻译自 Laravel-News 的一篇教程,总结了 Laravel 的对象关系映射框架(ORM)的几个小技巧。...覆盖或者重写一些属性 比如$model->something = transform($something); }); } } 可能最常见的例子之一是在创建模型对象时设置一些字段值...比方说你需要在创建对象时候生成UUID字段。 4....likes_amount', 0)); }); $query->when(request('filter_by') == 'date', function ($q) { return $q->orderBy...return $this->belongsTo('App\Author')->withDefault(); } 在这个例子中,在这个帖子下没有关联作者的时候,author()关联关系将返回一个空的
StockQuantities.OrderBy(u=>u.Status) 错误, 该排序得规则不仅仅会考虑Status是否为空,还会考虑Status的内容。...然道还有比这更好的代码? 给同事倒了一杯茶,点了一根烟,虚心请教。 大佬做法: 同事给我讲了两招,分别是条件排序、多级排序。 什么是条件排序,怎么用? 1. ...StockQuantities.OrderBy(u=>u.Status==null) 这就是条件排序,可是咋一看,给人一种是把Status为空的排前面,不为空的排后面的错觉。...其实不然,我们看到OrderBy里面的一个返回值为bool类型的表达式,该排序先排结果为0(false)的,再排结果为1(true)的。...这种排序只考虑返回的bool值,不考虑参数的具体值,所以姑且称它为条件排序。 完全符合排序规则1的要求。 什么是多级排序,怎么用? 2.
尤其当分类数据和层级多时,一个糟糕的算法将使服务器不堪重负 以下用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(' - '); // 用 - 符号将数组的值组装成一个字符串
$id; }); 将name赋默认值kitty,是name变为可选项(加?) Route::get('user/{name?}'...::table("表名")->lists("字段名"); DB::table("表名")->lists("字段名1","字段名2"); select - 指定要查询的字段 DB::table("...例如,一次处理整个 users 表中的 100 个记录: DB::table('users')->orderBy('id')->chunk(100, function ($users) { foreach...($users as $user) { // } }); 你可以从 闭包 中返回 false 来阻止进一步的分块的处理: DB::table('users')->orderBy...$obj->name 代码块, 如果为空则显示 null @forelse($res as $obj) {{ $obj->name }} @empty null @endforelse
而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工具集,从收集、验证、到过滤、编排,可谓是一应俱全,接下来,我们将通过三四篇教程的篇幅来为你详细介绍如何在 Laravel...项目中处理用户请求,首先,我们从收集用户请求数据开始。...获取指定请求字段值 上面我们已经给出了获取指定字段值的一个方法 get,该方法只能获取通过 GET 请求传递的参数,同理,如果是 POST 请求的话,我们可以通过 post 方法获取对应字段值,此次之外...('name'); 我们还可以为 input 方法传递第二个参数作为默认值,如果请求字段为空的话,则使用该默认值: $site = $request->input('site', 'Laravel学院...获取 JSON 输入字段值 随着基于 JavaScript 的单页面应用(SPA)应用的流行,除了传统表单请求提交的 POST/GET 数据之外,JSON 格式的请求数据也越来越常见,Laravel 支持对
总不能因为一个a标签就将markedJs抛弃不用吧,面对这种情况,即然项目是开源的,那就试着看一下自己能不能加上这一属性。...要实现的效果如下 [迹忆客](https://www.jiyik.com) // 解析后为 迹忆客 [!...迹忆客](https://www.jiyik.com) // 解析后为 迹忆客 要实现这种效果,就不像上面一样了...迹忆客],那text的值为“!迹忆客”。这样我们就可以对text的文本做一个判断,如果第一个字母是叹号!,则就要将target的值设置为"_blank"。否则的话target就为空。...这就好办了,上面我们即然加上了target的标记,那这里我们也加个正则来匹配我们的叹号! inline._target = /!?
, 1); } } 使用上述添加的本地约束查询,只需要在查询中使用scope前缀的方法,去掉scope前缀即可 $users = App\User::popular()->active()->orderBy...,比如用户的密码等,使用$hidden字段控制那些字段不应该被序列化 字段设置字段名。...Mutators 在Eloquent模型中,Accessor和Mutator可以用来对模型的属性进行处理,比如我们希望存储到表中的密码字段要经过加密才行,我们可以使用Laravel的加密工具自动的对它进行加密...假设我们有一个字段是first_name,当我们尝试去获取first_name的值的时候,getFirstNameAttribute方法将会被自动的调用 <?
对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...里面的东西是什么,则是根据我们的 MTest 这个 Model 里面的 sex 字段的值来确定的,也就是 $this->child->{$this->foreignKey}这一段。...这个参数是可选的,如果不填,它会默认找一个叫做 sex_id 的值,当然,在我们的数据中是没这个字段的,所以我们指定为 sex 。...其实这段代码已经很清楚明了了,如果没有 key 就返回一个空的内容,如果 key 存在于当前这个模型类的相关属性中,则调用一些处理方法后返回。...其实就是第一个参数是一个值,然后把它放到第二个参数中,这个参数是一个回调函数,然后通过回调函数来使用这个值进行其它的操作。这一段可能说得不太清楚,大家可以自己查看源代码然后调试一下就明白了。
「ActiveRecord」是 ORM 的一种实现模式,Eloquent 则是 Laravel 版的「ActiveRecord」。...模型类查询结果为空会返回 null。...$max = User::whereNotNull('email_verified_at')->max('id'); # 最大值 你会发现,如果你掌握了查询构建器,就等同于掌握了 Laravel...还为我们提供了一些快捷的插入方法,比如 firstOrCreate 和 firstOrNew,这两个方法都会先尝试通过指定查询条件在数据库中查找对应记录,如果没有找到的话,会创建对应模型类的实例,并将查询条件作为对应字段值设置到模型属性上...本系列教程首发在Laravel学院(laravelacademy.org)
这意味着主键将会被自动转化为 int 类型, 如果你想要使用非自增或非数字类型主键, 必须在对应模型中设置 $incrementing 属性为 false , 如果主键不是整型, 还要设置 $keyType 属性值为...as $flight) { echo $flight->name; } // 添加约束条件 $flights = App\Flight::where('active', 1) ->orderBy...query) { return $query->where('active', 1); } // 使用本地作用域 $users = App\User::popular()->active()->orderBy...// User : id 父模型主键 return $this->belongsTo('App\User', 'user_id', 'id'); } } // 空模型...例如, 你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密, 并且在 Eloquent 模型中访问时自动进行解密.
Laravel在入口index.php时先加载Composer加载器:Laravel5.2之Composer自动加载,然后进行Application的实例化:Laravel5.3之IoC Container...checkForSpecificEnvironmentFile($app); try { $env = $_ENV; // 调试添加的,此时为空...此时是空 if (!...env值;如果传入值则判断该值是否与env一样。...protected function prependToLoaderStack() { // 把AliasLoader::load()放入自动加载函数堆栈中,堆栈首的位置
Laravel在入口index.php时先加载Composer加载器:Laravel学习笔记之Composer自动加载,然后进行Application的实例化:Laravel学习笔记之IoC Container...checkForSpecificEnvironmentFile($app); try { $env = $_ENV; // 调试添加的,此时为空...此时是空 if (!...$env值;如果传入值则判断该值是否与$env一样。...protected function prependToLoaderStack() { // 把AliasLoader::load()放入自动加载函数堆栈中,堆栈首的位置
nullable 验证字段可以为 null。这在验证基本数据类型时特别有用,例如可以包含空值的字符串和整数。 numeric 验证字段必须为数值。...required 验证的字段必须存在于输入数据中,而不是空。如果满足以下条件之一,则字段被视为「空」: 值为 null 。 值为空字符串。 值为空数组或空 Countable 对象。...value1) ,则此验证字段必须存在且不为空。...anotherfield 不等于任一值 value ,则此验证字段必须存在且不为空。...至于它到底是缺失还是空值这取决于你。 隐式规则对象 如果你想要在属性为空时执行规则对象,你应该实现 Illuminate\Contracts\Validation\ImplicitRule 接口。
') }} => 我的博客 //注意这里有一个 config('app.name') 该函数其实是读取的 /.env 里的 APP_NAME 值,且默认值为 'Laravel' ,也就是说,你改 APP_NAME...也可以改这里显示的值,不过我嫌麻烦,直接查找替换了。...('created_at', 'desc') // 调用 Blog模型 的静态方法 orderBy('根据created_at字段', '倒叙排序') ->paginate(6)..."> {{ $errors->first('content') }} @endif 此时提交表单,左下角会提醒你 “内容不能为空”...一旦表单提交的数据不符合 Request@rules Laravel会自动帮我们生成一个叫 $errors 的数组,它存放着所有的错误信息, 我们在视图上通过判断它是否有 content 字段来判断是否是表单提交的评论有问题
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); // 默认按创建时间倒序 原因: 优雅处理空值...当你掌握了这些技巧,你的代码将不再是简单的指令堆砌,而是一首优雅的诗,一曲悦耳的交响乐。它们将像外婆的羊肉汤一样,散发着独特的魅力,让人回味无穷。
(字段名)字体名 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)优先顺序覆盖低优先级的值。
limit关键字的用法是 LIMIT [offset,] rows offset是相对于首行的偏移量(首行是0),rows是返回条数。...-- 使用驼峰命名法转换字段。 --> 空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型 --> orderBy语句 Page page = PageHelper.startPage(pageNum, pageSize, orderBy); Page<?
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 内置的函数,我目前收集到就是那么多,如果你有发现什么好的函数也可以留言告诉我。
领取专属 10元无门槛券
手把手带您无忧上云