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中会发现数据库取出来的都是对象,真的超级难用,至少我是这么觉得的,我还是觉得从数据库取出来的直接就是数组比较爽