Repository navigation
services
Service class documentation for ArtisanPack UI Forms.
Handles form CRUD operations and retrieval.
use ArtisanPackUI\Forms\Services\FormService;
$formService = app(FormService::class);Retrieve a form by its slug.
public function getBySlug(string $slug): ?FormExample:
$form = $formService->getBySlug('contact');Retrieve a form by ID.
public function getById(int $id): ?FormCreate a new form.
public function create(array $data): FormExample:
$form = $formService->create([
'name' => 'Contact Form',
'slug' => 'contact',
'description' => 'Contact us form',
'is_active' => true,
]);Update an existing form.
public function update(Form $form, array $data): FormDelete a form and its related data.
public function delete(Form $form): boolDuplicate a form with all fields and settings.
public function duplicate(Form $form, ?string $newSlug = null): FormExample:
$newForm = $formService->duplicate($form, 'contact-v2');Get all active forms.
public function getActiveForms(): CollectionManages form fields.
use ArtisanPackUI\Forms\Services\FieldService;
$fieldService = app(FieldService::class);Create a new field for a form.
public function createField(Form $form, array $data): FormFieldExample:
$field = $fieldService->createField($form, [
'type' => 'text',
'name' => 'full_name',
'label' => 'Full Name',
'required' => true,
'order' => 1,
]);Update an existing field.
public function updateField(FormField $field, array $data): FormFieldDelete a field.
public function deleteField(FormField $field): boolReorder fields for a form.
public function reorderFields(Form $form, array $fieldIds): voidExample:
$fieldService->reorderFields($form, [3, 1, 2, 5, 4]);Get available field types.
public function getFieldTypes(): arrayManages multi-step form steps.
use ArtisanPackUI\Forms\Services\StepService;
$stepService = app(StepService::class);Create a new step.
public function createStep(Form $form, array $data): FormStepUpdate a step.
public function updateStep(FormStep $step, array $data): FormStepDelete a step and reassign its fields.
public function deleteStep(FormStep $step): boolReorder steps.
public function reorderSteps(Form $form, array $stepIds): voidHandles form submissions.
use ArtisanPackUI\Forms\Services\SubmissionService;
$submissionService = app(SubmissionService::class);Create a new submission.
public function create(
Form $form,
array $data,
array $metadata = []
): FormSubmissionExample:
$submission = $submissionService->create($form, [
'name' => 'John Doe',
'email' => 'john@example.com',
'message' => 'Hello!',
], [
'source' => 'landing-page',
'utm_campaign' => 'summer2024',
]);Process uploaded files for a submission.
public function processFiles(
FormSubmission $submission,
array $files
): CollectionDelete a submission and its files.
public function delete(FormSubmission $submission): boolGet submissions for a form with pagination.
public function getForForm(
Form $form,
int $perPage = 15,
array $filters = []
): LengthAwarePaginatorExample:
$submissions = $submissionService->getForForm($form, 20, [
'search' => 'john',
'start_date' => '2024-01-01',
'end_date' => '2024-12-31',
]);Handles email notifications.
use ArtisanPackUI\Forms\Services\NotificationService;
$notificationService = app(NotificationService::class);Send all active notifications for a submission.
public function sendNotifications(FormSubmission $submission): voidParse placeholders in a template.
public function parseTemplate(
string $template,
FormSubmission $submission
): stringExample:
$parsed = $notificationService->parseTemplate(
'Hello {name}, thank you for contacting us!',
$submission
);Format submission data as HTML table.
public function formatAllFieldsAsTable(
FormSubmission $submission
): stringGet CC email addresses.
public function getCcEmails(FormNotification $notification): arrayGet BCC email addresses.
public function getBccEmails(FormNotification $notification): arrayEvaluates conditional logic rules.
use ArtisanPackUI\Forms\Services\ConditionalLogicService;
$conditionService = app(ConditionalLogicService::class);Evaluate conditions against form data.
public function evaluateConditions(
?array $conditions,
array $formData
): boolExample:
$isVisible = $conditionService->evaluateConditions([
'logic' => 'and',
'rules' => [
['field' => 'country', 'operator' => 'equals', 'value' => 'US'],
],
], $formData);Get fields visible for current form state.
public function getVisibleFields(Form $form, array $formData): CollectionCheck if a specific field is visible.
public function isFieldVisible(FormField $field, array $formData): boolHandles data export operations.
use ArtisanPackUI\Forms\Services\ExportService;
$exportService = app(ExportService::class);Export submissions to CSV.
public function toCsv(
Form $form,
array $options = []
): stringExample:
$csv = $exportService->toCsv($form, [
'start_date' => now()->subMonth(),
'end_date' => now(),
]);Export submissions to array.
public function toArray(
Form $form,
array $options = []
): arrayManages third-party integrations.
use ArtisanPackUI\Forms\Services\IntegrationService;
$integrationService = app(IntegrationService::class);Get registered integrations.
public function getAvailableIntegrations(): arrayProcess submission through integrations.
public function processSubmission(FormSubmission $submission): void