/** * Get Values relationship. * * @return Values */ public function values(Collection $properties = null) { $instance = new Value(); $instance->setConnection($this->getConnectionName()); //Builder $query, Model $parent, $foreignKey, $localKey return new Values($instance->newQuery(), $this, $instance->getTable() . '.entity_id', $this->getKeyName(), $properties); }
/** * Add new Value to entity. * * @param Property $property * @param mixed $value * * @return Value */ public function addValue(Property $property, $value) { $instance = self::getType($property->type); if ($instance !== null) { $v = $instance->newInstance([], false); } else { $v = new Value(); } $v->setConnection($this->entity->getConnectionName()); $v->setRelation('property', $property); $v->forceFill(['property_id' => $property->getKey(), 'value' => $value]); if ($property->multiple) { $this->getPropertyValue($property->name)->push($v); } else { $this->getPropertyValues($property->name)->put($property->name, $v); } return $v; }