31 lines
901 B
PHP
31 lines
901 B
PHP
<?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);
|
|
}
|
|
}
|
|
}
|
|
}
|