/** * Takes an eloquent result array and turns it into an options array that can be used in the UI * * @param \Frozennode\Administrator\Fields\Field $field * @param \Illuminate\Database\Eloquent\Collection $results * * @return array */ public function formatSelectOptions(Field $field, EloquentCollection $results) { $return = array(); foreach ($results as $m) { $return[] = array('id' => $m->getKey(), 'text' => strval($m->{$field->getOption('name_field')})); } return $return; }
/** * Fills a model with the necessary relationship values * * @param \Illuminate\Database\Eloquent\Model $model * @param \Frozennode\Administrator\Fields\Field $field * * @return \Illuminate\Database\Eloquent\Collection */ public function getModelRelatedItems($model, Field $field) { $name = $field->getOption('field_name'); if ($field->getOption('multiple_values')) { //if a sort_field is provided, use it, otherwise sort by the name field if ($sortField = $field->getOption('sort_field')) { return $model->{$name}()->orderBy($sortField)->get(); } else { return $model->{$name}()->orderBy($field->getOption('name_field'))->get(); } } else { return $model->{$name}()->get(); } }
/** * Gets the formatted value of a relationship input * * @param string $value * @param \Frozennode\Administrator\Fields\Field $field * * @return mixed array | string */ protected function formatRelationshipInput($value, Field $field) { $value = trim($value); if ($field->getOption('multiple_values')) { $value = $value ? explode(',', $value) : array(); } return $value; }
/** * Takes an eloquent result array and turns it into an options array that can be used in the UI * * @param \Illuminate\Database\Eloquent\Model $model * @param \Frozennode\Administrator\Fields\Field $field * @param array $results * * @return array */ public function formatSelectOptions($model, Field $field, array $results) { $model = $this->config->getDataModel(); return array_map(function($m) use ($field, $model) { return array( 'id' => $m->{$model->getKeyName()}, 'text' => strval($m->{$field->getOption('name_field')}), ); }, $results); }