pluck的返回值
前言
今天用到了laravel的pluck功能,就顺便记录下来。
pluck是获取所读取的数据一列或者两列的方法。
一、获取一列代码如下:
->pluck('pic_url') ;
结果如下:
Collection {#590 #items: array:8 [ 0 => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" 1 => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" 2 => "cd/05/cd057a51be41618f65dc17da24ba28a4.jpg" 3 => "cd/05/cd057a51be41618f65dc17da24ba28a4.jpg" 4 => "0c/36/0c363cf7e2f41812b9e8cb5a1823ef64.jpg" 5 => "0c/36/0c363cf7e2f41812b9e8cb5a1823ef64.jpg" 6 => "3b/64/3b64aa75b469090612c1f13b698e7195.png" 7 => "0a/c9/0ac9e6b10d46fb6c29869571fcceec8b.png" ] }
二、获取两列代码如下:
->pluck('pic_url','id') ;
结果如下:
Collection {#590 #items: array:8 [ 1 => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" 2 => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" 3 => "cd/05/cd057a51be41618f65dc17da24ba28a4.jpg" 4 => "cd/05/cd057a51be41618f65dc17da24ba28a4.jpg" 5 => "0c/36/0c363cf7e2f41812b9e8cb5a1823ef64.jpg" 6 => "0c/36/0c363cf7e2f41812b9e8cb5a1823ef64.jpg" 15 => "3b/64/3b64aa75b469090612c1f13b698e7195.png" 16 => "0a/c9/0ac9e6b10d46fb6c29869571fcceec8b.png" ] }
从中我们可以看到三个重点:
1. pluck的返回值是collection,要变成数组需要使用->toArray()、->all()
2. pluck中最多只能传两个变量
3. 两个变量中第一个为值,第二个为key。
三、那你可能又回产生疑问:如果我要获取三个以上的列怎么做呢?简单
->get(['pic_url','id','student_id']) ;
这里有三点要注意:
1. 关键词是get
2. get里面是数组,而不是直接的字段
3. 结果的返回值是collection
结果的返回值如下:
Collection {#606 #items: array:8 [ 0 => ClassRoomSnapShotModel {#607 #connection: "quxuexi_merchant" #table: "classroom_snapshot" #primaryKey: "id" #keyType: "int" +incrementing: true #with: [] #withCount: [] #perPage: 15 +exists: true +wasRecentlyCreated: false #attributes: array:3 [ "pic_url" => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" "id" => 1 "student_id" => 22 ] #original: array:3 [ "pic_url" => "f3/0a/f30adf9b859fe7289717aa9267ed04b1.jpg" "id" => 1 "student_id" => 22 ] #changes: [] #casts: [] #dates: [] #dateFormat: null #appends: [] #dispatchesEvents: [] #observables: [] #relations: [] #touches: [] +timestamps: true #hidden: [] #visible: [] #fillable: [] #guarded: array:1 [ 0 => "*" ] } }
结语
九层之台,起于累土。千里之行,始于足下。骐骥一跃,不能十步。驽马十驾,功在不舍。在每个时间都做正确的事,然后时间会给你正确的答案。