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 => "*"
      ]
    }
}

 

结语

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

posted @ 2018-12-04 10:22  泥土里的绽放  阅读(1032)  评论(0编辑  收藏  举报