diff --git a/resources/js/components/Fieldtypes/DateTime/Field.vue b/resources/js/components/Fieldtypes/DateTime/Field.vue index d17a509d..28488c01 100644 --- a/resources/js/components/Fieldtypes/DateTime/Field.vue +++ b/resources/js/components/Fieldtypes/DateTime/Field.vue @@ -61,7 +61,7 @@ }, mounted() { - this.inst = flatpickr(`#flatpickr_${this.field.handle}`, { + this.inst = flatpickr(this.$el.querySelector(`#flatpickr_${this.field.handle}`), { altFormat: this.field.settings.format, altInput: true, dateFormat: 'Y-m-d H:i:S', diff --git a/src/Fieldtypes/AssetFieldtype.php b/src/Fieldtypes/AssetFieldtype.php index 087df455..c2caaf4f 100644 --- a/src/Fieldtypes/AssetFieldtype.php +++ b/src/Fieldtypes/AssetFieldtype.php @@ -100,10 +100,10 @@ public function generateRelationship($field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $oldValues = $model->{$field->handle}->pluck('id'); - $newValues = collect(request()->input($field->handle))->mapWithKeys(function ($item, $key) use ($field) { + $newValues = collect($value ?? request()->input($field->handle))->mapWithKeys(function ($item, $key) use ($field) { return [ $item['id'] => [ 'field_id' => $field->id, diff --git a/src/Fieldtypes/FieldsetFieldtype.php b/src/Fieldtypes/FieldsetFieldtype.php index a66a7757..51587451 100755 --- a/src/Fieldtypes/FieldsetFieldtype.php +++ b/src/Fieldtypes/FieldsetFieldtype.php @@ -148,14 +148,14 @@ public function generateRelationship($field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $fieldset = Fieldset::findOrFail($field->settings['fieldset']); $model->{$field->handle}()->updateOrCreate([ 'field_id' => $field->id, 'fieldset_id' => $fieldset->id, - ], request()->input($field->handle, [])); + ], $value ?? request()->input($field->handle, [])); } /** diff --git a/src/Fieldtypes/Fieldtype.php b/src/Fieldtypes/Fieldtype.php index 1ace92f1..c758df6a 100755 --- a/src/Fieldtypes/Fieldtype.php +++ b/src/Fieldtypes/Fieldtype.php @@ -27,7 +27,7 @@ abstract class Fieldtype * * @var string */ - public $cast = ''; + public $cast = null; /** * @var null diff --git a/src/Fieldtypes/FormFieldtype.php b/src/Fieldtypes/FormFieldtype.php index 7a58ee06..cf376062 100644 --- a/src/Fieldtypes/FormFieldtype.php +++ b/src/Fieldtypes/FormFieldtype.php @@ -69,10 +69,10 @@ public function generateRelationship($field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $oldValues = $model->{$field->handle}->pluck('id'); - $newValues = collect(request()->input($field->handle)) + $newValues = collect($value ?? request()->input($field->handle)) ->mapWithKeys(function ($id, $key) use ($field) { return [ $id => [ diff --git a/src/Fieldtypes/ReplicatorFieldtype.php b/src/Fieldtypes/ReplicatorFieldtype.php index 16eee4e3..0f85dece 100755 --- a/src/Fieldtypes/ReplicatorFieldtype.php +++ b/src/Fieldtypes/ReplicatorFieldtype.php @@ -151,10 +151,10 @@ public function generateRelationship(Field $field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $replicator = Replicator::find($field->settings['replicator']); - $replicants = $this->persistReplicants($replicator, $field); + $replicants = $this->persistReplicants($replicator, $field, $value); $sections = $replicator->sections; $sections->each(function ($section) use ($model, $replicator, $replicants) { @@ -259,9 +259,9 @@ public function getResource($model, Field $field) * * @return \Illuminate\Support\Collection */ - private function persistReplicants(Replicator $replicator, Field $field) + private function persistReplicants(Replicator $replicator, Field $field, $value = null) { - return collect(request()->input($field->handle, [])) + return collect($value ?? request()->input($field->handle, [])) ->map(function ($input) use ($replicator) { $section = Section::findOrFail($input['section']['id']); $builder = $replicator->getBuilder($section); diff --git a/src/Fieldtypes/TaxonomyFieldtype.php b/src/Fieldtypes/TaxonomyFieldtype.php index fd473693..9cd74e17 100644 --- a/src/Fieldtypes/TaxonomyFieldtype.php +++ b/src/Fieldtypes/TaxonomyFieldtype.php @@ -88,10 +88,10 @@ public function generateRelationship($field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $oldValues = $model->{$field->handle}->pluck('id'); - $newValues = collect(request()->input($field->handle)) + $newValues = collect($value ?? request()->input($field->handle)) ->mapWithKeys(function ($id) use ($field) { return [ $id => [ diff --git a/src/Fieldtypes/UserFieldtype.php b/src/Fieldtypes/UserFieldtype.php index f684c051..9cc26c41 100644 --- a/src/Fieldtypes/UserFieldtype.php +++ b/src/Fieldtypes/UserFieldtype.php @@ -3,7 +3,7 @@ namespace Fusion\Fieldtypes; use File; -use Fusion\Http\Resources\USerResource; +use Fusion\Http\Resources\UserResource; use Fusion\Models\Field; use Illuminate\Support\Str; @@ -76,10 +76,10 @@ public function generateRelationship($field) * * @return void */ - public function persistRelationship($model, Field $field) + public function persistRelationship($model, Field $field, $value = null) { $oldValues = $model->{$field->handle}->pluck('id'); - $newValues = collect(request()->input($field->handle))->mapWithKeys(function ($item, $key) use ($field) { + $newValues = collect($value ?? request()->input($field->handle))->mapWithKeys(function ($item, $key) use ($field) { return [ $item['id'] => [ 'field_id' => $field->id, diff --git a/src/Services/Builders/Builder.php b/src/Services/Builders/Builder.php index fee31afd..ead42a4f 100755 --- a/src/Services/Builders/Builder.php +++ b/src/Services/Builders/Builder.php @@ -48,7 +48,9 @@ public function refresh() foreach ($this->columns as $column) { $fillable[] = $column->handle; - $casts[$column->handle] = $column->type()->cast; + if (isset($column->type()->cast)) { + $casts[$column->handle] = $column->type()->cast; + } } $fillable = array_merge($this->getFillable(), $fillable);