Laravel如何判断是否取出了数据

Laravel中对数据库的连贯操作叫做 查询构造器,我本人是比较推荐使用查询构造器的,方便易读好交接,而且可以使用tp的思想进行操作

例子如下

$map['aggratepage_game_statistic.channel'] = $channel;
$data = DB::table('a')
   ->leftJoin('b','a.ad_id','=','b.task_id')
   ->where($map)
   ->whereBetween('a.date',[$startTime,$endTime])
   ->select('a.*','b.task_name')
   ->paginate($row);

具体使用上跟TP5很相似只不过需要注意的是Laravel的select 就是TP的field,使用了一周Laravel 我至今觉得TP5的Db类使用方便程度上略胜Laravel,TP5的page简直就是碾压Laravel!

切入正题

Laravel DB类取出的数据都是对象


LengthAwarePaginator{#460 ▼
  #total: 2
  #lastPage: 1
  #items:Collection{#458 ▼
    #items: array:2 [▼
      0 => {#454 ▼
        +"date": "2018-09-18"
        +"channel": "123"
        +"haha_id": 1
         }    ]  }
  #perPage: 10
  #currentPage: 1
  #path: "http://localhost/youzhuan/public/Admin/Statistics"
  #query: []
  #fragment: null
  #pageName: "page"}

这种对象内是否有数据是不能用!来分辨的,如果你想判断这个对象中是否有数据可使用

if($data->count()){

}

来进行判断,如果想获取数据可以使用

$data->items();这样获取出来的数据还是对象

如果你想在使用中直接在查询中就获取到$data->items()这样的对象的话 你可以在连贯操作后加->toArray();

你在使用Laravel中会发现数据库取出来的都是对象,真的超级难用,至少我是这么觉得的,我还是觉得从数据库取出来的直接就是数组比较爽

博客
请先登录后发表评论
  • 最新评论
  • 总共1条评论
白俊遥博客

白色彩虹:test

2018-09-26 17:05:28 回复