ldc-mesbr-app/app/Traits/HasUniqueField.php

32 lines
901 B
PHP
Raw Permalink Normal View History

2025-11-04 15:29:03 +01:00
<?php
namespace App\Traits;
use App\Lib\Helpers\ToolboxHelper;
use \Illuminate\Support\Str;
trait HasUniqueField
{
/**
* Asserts using validation that the field is unique
*
* @param string $field
* @param string|null $value
* @param integer|null $id
* @param string|null $slugField
* @return void
* @throws \Illuminate\Validation\ValidationException If the given field already exists.
*/
private function assertFieldIsUnique(string $field, ?string $value = null, ?int $id = null, ?string $slugField = null): void
{
if (!is_null($value)) {
$table = $this->getTable();
ToolboxHelper::assertFieldIsUnique($table, $field, $value, $id);
if (!is_null($slugField)) {
ToolboxHelper::assertFieldIsUnique($table, $slugField, Str::slug($value), $id);
}
}
}
}