123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php namespace Illuminate\Database\Eloquent;
- use Illuminate\Support\Collection as BaseCollection;
- class Collection extends BaseCollection {
- /**
- * Find a model in the collection by key.
- *
- * @param mixed $key
- * @param mixed $default
- * @return \Illuminate\Database\Eloquent\Model
- */
- public function find($key, $default = null)
- {
- return array_first($this->items, function($key, $model)
- {
- return $model->getKey() == $key;
- }, $default);
- }
- /**
- * Load a set of relationships onto the collection.
- *
- * @param dynamic string
- * @return void
- */
- public function load()
- {
- if (count($this->items) > 0)
- {
- $query = $this->first()->newQuery()->with(func_get_args());
- $this->items = $query->eagerLoadRelations($this->items);
- }
- }
- /**
- * Add an item to the collection.
- *
- * @param mixed $item
- * @return \Illuminate\Database\Eloquent\Collection
- */
- public function add($item)
- {
- $this->items[] = $item;
- return $this;
- }
- /**
- * Determine if a key exists in the collection.
- *
- * @param mixed $key
- * @return bool
- */
- public function contains($key)
- {
- return ! is_null($this->find($key));
- }
- /**
- * Fetch a nested element of the collection.
- *
- * @param string $key
- * @return \Illuminate\Support\Collection
- */
- public function fetch($key)
- {
- return new static(array_fetch($this->toArray(), $key));
- }
- /**
- * Get the array of primary keys
- *
- * @return array
- */
- public function modelKeys()
- {
- return array_map(function($m) { return $m->getKey(); }, $this->items);
- }
- }
|