laravel 小知识点
-
分块导出
brokerageCharge = DB::table('表名')
$brokerageCharge = $brokerageCharge->chunk(100,function($brokerageCharge){
foreach($brokerageCharge as $brokerageChargeInfo){
$GLOBALS['something'][] = $brokerageChargeInfo;
}
});$myExportList = $GLOBALS['something'];
-
数据查询时比较同一条数据的俩个字段
->whereColumn('updated_at', '>', 'created_at')
-
查询json字段
$results = Post::where('meta->description', 'like', '%foo%')->get(); meta为json字段,descripton为meta中的键
-
laravel的whereRaw工作原理
$keyword = 'foo';
$results = Post::whereRaw('lower(meta->"$.description") like lower(?)', ['%foo%']);
你会注意到这条的查询语句有些不同。此处的lower是将字符串转换为小写
首先,除了 like 关键字外还多了些 SQL 语法,因为这里我们传入的是一条 原生 SQL 表达式 。
其次,在第 2 个 lower 函数内加入了 ? 占位符,这种语法即为参数绑定,它的主要作用是用于防止 SQL 注入。
如你所见,我们将一个 array 给到 whereRaw 的第二个参数,数组内的第一个元素对应第一个参数绑定占位符,第二个元素对应第二个参数绑定占位符,以此类推。
这就是 whereRaw 的工作原理。
纵然世间炎凉百态!我自依旧初心不改!!