diff --git a/src/Forms/Submission.php b/src/Forms/Submission.php index eeacc945..2025b427 100644 --- a/src/Forms/Submission.php +++ b/src/Forms/Submission.php @@ -22,7 +22,7 @@ public static function fromModel(Model $model) { return (new static()) ->id($model->id) - ->date($model->data['date'] ?? Carbon::now()) + ->date($model->created_at ?? Carbon::now()) ->data(Arr::except($model->data, 'date')) ->model($model); } diff --git a/tests/Forms/FormSubmissionTest.php b/tests/Forms/FormSubmissionTest.php index 9d766d9c..124a27b3 100644 --- a/tests/Forms/FormSubmissionTest.php +++ b/tests/Forms/FormSubmissionTest.php @@ -6,6 +6,7 @@ use PHPUnit\Framework\Attributes\Test; use Statamic\Eloquent\Forms\FormModel; use Statamic\Eloquent\Forms\SubmissionModel; +use Statamic\Facades; use Tests\TestCase; class FormSubmissionTest extends TestCase @@ -81,4 +82,23 @@ public function it_should_not_overwrite_submissions() $this->assertCount(2, SubmissionModel::all()); } + + #[Test] + public function it_should_not_save_date_in_data() + { + $form = tap(Facades\Form::make('test')->title('Test')) + ->save(); + + $submission = tap($form->makeSubmission([ + 'name' => 'John Doe', + ]))->save(); + + $this->assertInstanceOf(Carbon::class, $submission->date()); + $this->assertArrayNotHasKey('date', $submission->model()->data); + + $fresh = \Statamic\Eloquent\Forms\Submission::fromModel($submission->model()->fresh()); + + $this->assertInstanceOf(Carbon::class, $fresh->date()); + $this->assertSame($fresh->date()->format('u'), $submission->date()->format('u')); + } }