zoukankan      html  css  js  c++  java
  • Laravel 5.1 文档攻略 —— Eloquent Collection

    简介

    像all()和get(),还有一些处理模型关系这种会返回多条数据的方法,在Eloquent里面会返回一个collection对象集合(对象装在对象里),而不是像DQB的数组结果集合(对象装在数组里)。Collection其实前面已经讲过了,它是在数据查询出来后,提供了一系列处理数据的方法,非常强大实用。

    首先,所有的collection都可以遍历:

    1. $users = AppUser::where('active', 1)->get();
    2. foreach ($users as $user) {
    3. echo $user->name;
    4. }

    但是,collection的能力远远不止于此,非常强大,例如:

    1. $users = AppUser::all();
    2. $names = $users->reject(function ($user) {
    3. return $user->active === false;
    4. })
    5. ->map(function ($user) {
    6. return $user->name;
    7. });

    这段代码把所有非激活状态的用户去除,并把剩余用户的名字列出来;

    Collection 方法

    请参考官网。

    在模型中自定义Collection

    主要方法是覆盖newCollection()方法:

    1. namespace App;
    2. use AppCustomCollection;
    3. use IlluminateDatabaseEloquentModel;
    4. class User extends Model
    5. {
    6. public function newCollection(array $models = [])
    7. {
    8. return new CustomCollection($models);
    9. }
    10. }
    11. `

    CustomCollection()就是你自定义的一个类;在里面你可以组织返回collection的内容;

    目前这个方法只是对Usermodel适用,如果你想对所有适用,可以把覆盖方法放到一个所有模型都继承的基类中去。

  • 相关阅读:
    iOS之由身份证号返回性别
    iOS之获取经纬度并通过反向地理编码获取详细地址
    iOS之获取App的LaunchImage
    iOS之UI组件整理
    iOS之在写一个iOS应用之前必须做的7件事(附相关资源)
    The ADB instructions
    The packaging and installation process of Android programs
    SDK Manager
    JVM vs DVM
    Android architecture
  • 原文地址:https://www.cnblogs.com/isykw/p/6151740.html
Copyright © 2011-2022 走看看