protected function getForForm() { if ($this->field->getRelation()->getType() !== 'belongsTo') { return ''; } $relatedModels = app(EloquentModelsRepositoryInterface::class, [ElegantModel::normalizeClassName($this->field->getRelation()->getRelatedModel())]); return Form::elegantSelect($this->field->getRelation()->getForeignKey(), $this->field->getDisplayName(), View::getShared()['errors'], $relatedModels->elegantLists()); }
protected function registerEloquentEvents() { // Flush Elegant cache when anything changes for models registered by Elegant Event::listen('eloquent.*', function ($caller) { $callerClass = get_class($caller); if (!in_array($callerClass, ElegantConfig::getModelsAsClassNames())) { return; } if (in_array(Event::firing(), ['eloquent.saved', 'eloquent.deleted', 'eloquent.updated', 'eloquent.created']) && $this->cacheIsTaggable()) { Cache::tags('elegant-' . Support\ElegantModel::normalizeClassName($callerClass))->flush(); } }); }
public function __construct(EloquentModelsRepositoryInterface $eloquentModels) { parent::__construct(); $this->entityName = 'elegant-' . ElegantModel::normalizeClassName($eloquentModels->model()); $this->repository = $eloquentModels; }
protected function addNewModels(array $newModels) { foreach (array_unique($newModels) as $model) { $this->info("Adding new model {$model}..."); $this->config->addModel(new $model()); $this->navigation->addItem(['class_name' => $model, 'slug' => ElegantModel::normalizeClassName($model)]); } }