laravel 小知识点

  1. 分块导出
    brokerageCharge = DB::table('表名')
    $brokerageCharge = $brokerageCharge->chunk(100,function($brokerageCharge){
    foreach($brokerageCharge as $brokerageChargeInfo){
    $GLOBALS['something'][] = $brokerageChargeInfo;
    }
    });
    $myExportList =  $GLOBALS['something'];
  2. 数据查询时比较同一条数据的俩个字段
    ->whereColumn('updated_at', '>', 'created_at')
  3. 查询json字段
    $results = Post::where('meta->description', 'like', '%foo%')->get();   meta为json字段,descripton为meta中的键
  4. laravel的whereRaw工作原理
    $keyword = 'foo';
    $results = Post::whereRaw('lower(meta->"$.description") like lower(?)', ['%foo%']);
    你会注意到这条的查询语句有些不同。此处的lower是将字符串转换为小写
    首先,除了 like 关键字外还多了些 SQL 语法,因为这里我们传入的是一条 原生 SQL 表达式 。
    其次,在第 2 个 lower 函数内加入了 ? 占位符,这种语法即为参数绑定,它的主要作用是用于防止 SQL 注入。
    如你所见,我们将一个 array 给到 whereRaw 的第二个参数,数组内的第一个元素对应第一个参数绑定占位符,第二个元素对应第二个参数绑定占位符,以此类推。
    这就是 whereRaw 的工作原理。
posted @ 2019-05-25 17:46  php、凯  阅读(421)  评论(0编辑  收藏  举报