芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/public_html/midiatech/vendor/illuminate/database/Eloquent/Collection.php
getKey(); } return Arr::first($this->items, function ($itemKey, $model) use ($key) { return $model->getKey() == $key; }, $default); } /** * Load a set of relationships onto the collection. * * @param mixed $relations * @return $this */ public function load($relations) { if (count($this->items) > 0) { if (is_string($relations)) { $relations = func_get_args(); } $query = $this->first()->newQuery()->with($relations); $this->items = $query->eagerLoadRelations($this->items); } return $this; } /** * Add an item to the collection. * * @param mixed $item * @return $this */ public function add($item) { $this->items[] = $item; return $this; } /** * Determine if a key exists in the collection. * * @param mixed $key * @param mixed $value * @return bool */ public function contains($key, $value = null) { if (func_num_args() == 2) { return parent::contains($key, $value); } if ($this->useAsCallable($key)) { return parent::contains($key); } $key = $key instanceof Model ? $key->getKey() : $key; return parent::contains(function ($k, $m) use ($key) { return $m->getKey() == $key; }); } /** * Get the array of primary keys. * * @return array */ public function modelKeys() { return array_map(function ($m) { return $m->getKey(); }, $this->items); } /** * Merge the collection with the given items. * * @param \ArrayAccess|array $items * @return static */ public function merge($items) { $dictionary = $this->getDictionary(); foreach ($items as $item) { $dictionary[$item->getKey()] = $item; } return new static(array_values($dictionary)); } /** * Diff the collection with the given items. * * @param \ArrayAccess|array $items * @return static */ public function diff($items) { $diff = new static; $dictionary = $this->getDictionary($items); foreach ($this->items as $item) { if (! isset($dictionary[$item->getKey()])) { $diff->add($item); } } return $diff; } /** * Intersect the collection with the given items. * * @param \ArrayAccess|array $items * @return static */ public function intersect($items) { $intersect = new static; $dictionary = $this->getDictionary($items); foreach ($this->items as $item) { if (isset($dictionary[$item->getKey()])) { $intersect->add($item); } } return $intersect; } /** * Return only unique items from the collection. * * @param string|callable|null $key * @return static */ public function unique($key = null) { if (! is_null($key)) { return parent::unique($key); } return new static(array_values($this->getDictionary())); } /** * Returns only the models from the collection with the specified keys. * * @param mixed $keys * @return static */ public function only($keys) { $dictionary = Arr::only($this->getDictionary(), $keys); return new static(array_values($dictionary)); } /** * Returns all models in the collection except the models with specified keys. * * @param mixed $keys * @return static */ public function except($keys) { $dictionary = Arr::except($this->getDictionary(), $keys); return new static(array_values($dictionary)); } /** * Make the given, typically visible, attributes hidden across the entire collection. * * @param array|string $attributes * @return $this */ public function makeHidden($attributes) { return $this->each(function ($model) use ($attributes) { $model->addHidden($attributes); }); } /** * Make the given, typically hidden, attributes visible across the entire collection. * * @param array|string $attributes * @return $this */ public function makeVisible($attributes) { return $this->each(function ($model) use ($attributes) { $model->makeVisible($attributes); }); } /** * Make the given, typically hidden, attributes visible across the entire collection. * * @param array|string $attributes * @return $this * * @deprecated since version 5.2. Use the "makeVisible" method directly. */ public function withHidden($attributes) { return $this->makeVisible($attributes); } /** * Get a dictionary keyed by primary keys. * * @param \ArrayAccess|array|null $items * @return array */ public function getDictionary($items = null) { $items = is_null($items) ? $this->items : $items; $dictionary = []; foreach ($items as $value) { $dictionary[$value->getKey()] = $value; } return $dictionary; } /** * The following methods are intercepted to always return base collections. */ /** * Get an array with the values of a given key. * * @param string $value * @param string|null $key * @return \Illuminate\Support\Collection */ public function pluck($value, $key = null) { return $this->toBase()->pluck($value, $key); } /** * Get the keys of the collection items. * * @return \Illuminate\Support\Collection */ public function keys() { return $this->toBase()->keys(); } /** * Zip the collection together with one or more arrays. * * @param mixed ...$items * @return \Illuminate\Support\Collection */ public function zip($items) { return call_user_func_array([$this->toBase(), 'zip'], func_get_args()); } /** * Collapse the collection of items into a single array. * * @return \Illuminate\Support\Collection */ public function collapse() { return $this->toBase()->collapse(); } /** * Get a flattened array of the items in the collection. * * @param int $depth * @return \Illuminate\Support\Collection */ public function flatten($depth = INF) { return $this->toBase()->flatten($depth); } /** * Flip the items in the collection. * * @return \Illuminate\Support\Collection */ public function flip() { return $this->toBase()->flip(); } /** * Get the type of the entities being queued. * * @return string|null */ public function getQueueableClass() { if ($this->count() === 0) { return; } $class = get_class($this->first()); $this->each(function ($model) use ($class) { if (get_class($model) !== $class) { throw new LogicException('Queueing collections with multiple model types is not supported.'); } }); return $class; } /** * Get the identifiers for all of the entities. * * @return array */ public function getQueueableIds() { return $this->modelKeys(); } /** * Get a base Support collection instance from this collection. * * @return \Illuminate\Support\Collection */ public function toBase() { return new BaseCollection($this->items); } }