前言

今天用到了laravel的pluck功能,就顺便记录下来。

pluck是获取所读取的数据一列或者两列的方法。

一、获取一列代码如下:

->pluck('pic_url') ;

结果如下:

Collection {#
#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 {#
#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 {#
#items: array:8 [
0 => ClassRoomSnapShotModel {#
#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 => "*"
]
}
}

结语

九层之台,起于累土。千里之行,始于足下。骐骥一跃,不能十步。驽马十驾,功在不舍。在每个时间都做正确的事,然后时间会给你正确的答案。

04-27 03:51