101 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // +----------------------------------------------------------------------
 | |
| // | ThinkPHP [ WE CAN DO IT JUST THINK ]
 | |
| // +----------------------------------------------------------------------
 | |
| // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
 | |
| // +----------------------------------------------------------------------
 | |
| // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
 | |
| // +----------------------------------------------------------------------
 | |
| // | Author: zhangyajun <448901948@qq.com>
 | |
| // +----------------------------------------------------------------------
 | |
| 
 | |
| namespace think\model;
 | |
| 
 | |
| use think\Collection as BaseCollection;
 | |
| use think\Model;
 | |
| 
 | |
| class Collection extends BaseCollection
 | |
| {
 | |
|     /**
 | |
|      * 延迟预载入关联查询
 | |
|      * @access public
 | |
|      * @param  mixed $relation 关联
 | |
|      * @return $this
 | |
|      */
 | |
|     public function load($relation)
 | |
|     {
 | |
|         $item = current($this->items);
 | |
|         $item->eagerlyResultSet($this->items, $relation);
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 设置需要隐藏的输出属性
 | |
|      * @access public
 | |
|      * @param  array $hidden   属性列表
 | |
|      * @param  bool  $override 是否覆盖
 | |
|      * @return $this
 | |
|      */
 | |
|     public function hidden($hidden = [], $override = false)
 | |
|     {
 | |
|         $this->each(function ($model) use ($hidden, $override) {
 | |
|             /** @var Model $model */
 | |
|             $model->hidden($hidden, $override);
 | |
|         });
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 设置需要输出的属性
 | |
|      * @access public
 | |
|      * @param  array $visible
 | |
|      * @param  bool  $override 是否覆盖
 | |
|      * @return $this
 | |
|      */
 | |
|     public function visible($visible = [], $override = false)
 | |
|     {
 | |
|         $this->each(function ($model) use ($visible, $override) {
 | |
|             /** @var Model $model */
 | |
|             $model->visible($visible, $override);
 | |
|         });
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 设置需要追加的输出属性
 | |
|      * @access public
 | |
|      * @param  array $append   属性列表
 | |
|      * @param  bool  $override 是否覆盖
 | |
|      * @return $this
 | |
|      */
 | |
|     public function append($append = [], $override = false)
 | |
|     {
 | |
|         $this->each(function ($model) use ($append, $override) {
 | |
|             /** @var Model $model */
 | |
|             $model && $model->append($append, $override);
 | |
|         });
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 设置数据字段获取器
 | |
|      * @access public
 | |
|      * @param  string|array $name       字段名
 | |
|      * @param  callable     $callback   闭包获取器
 | |
|      * @return $this
 | |
|      */
 | |
|     public function withAttr($name, $callback = null)
 | |
|     {
 | |
|         $this->each(function ($model) use ($name, $callback) {
 | |
|             /** @var Model $model */
 | |
|             $model && $model->withAttribute($name, $callback);
 | |
|         });
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| }
 |