芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/public_html/avenida/vendor/illuminate/database/Eloquent/FactoryBuilder.php
name = $name; $this->class = $class; $this->faker = $faker; $this->definitions = $definitions; } /** * Set the amount of models you wish to create / make. * * @param int $amount * @return $this */ public function times($amount) { $this->amount = $amount; return $this; } /** * Create a collection of models and persist them to the database. * * @param array $attributes * @return mixed */ public function create(array $attributes = []) { $results = $this->make($attributes); if ($this->amount === 1) { $results->save(); } else { foreach ($results as $result) { $result->save(); } } return $results; } /** * Create a collection of models. * * @param array $attributes * @return mixed */ public function make(array $attributes = []) { if ($this->amount === 1) { return $this->makeInstance($attributes); } else { $results = []; for ($i = 0; $i < $this->amount; $i++) { $results[] = $this->makeInstance($attributes); } return new Collection($results); } } /** * Make an instance of the model with the given attributes. * * @param array $attributes * @return \Illuminate\Database\Eloquent\Model * * @throws \InvalidArgumentException */ protected function makeInstance(array $attributes = []) { return Model::unguarded(function () use ($attributes) { if (! isset($this->definitions[$this->class][$this->name])) { throw new InvalidArgumentException("Unable to locate factory with name [{$this->name}] [{$this->class}]."); } $definition = call_user_func( $this->definitions[$this->class][$this->name], $this->faker, $attributes ); $evaluated = $this->callClosureAttributes( array_merge($definition, $attributes) ); return new $this->class($evaluated); }); } /** * Evaluate any Closure attributes on the attribute array. * * @param array $attributes * @return array */ protected function callClosureAttributes(array $attributes) { foreach ($attributes as &$attribute) { $attribute = $attribute instanceof Closure ? $attribute($attributes) : $attribute; } return $attributes; } }