Laravel как не записывать дубли в БД laravel8

Metors

Новичок
Всем доброго времени суток. Не могу решить ,что делать с дублями и как перестать их записывать в БД.
Как я понял при создании таблицы:
Schema::create('agent_contras', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
создаются дополнительные.столбцы в бд created_at и updated_at .
Может дело в них, но и без них, тоже нельзя (ругаться cjntroller).
Может кто подскажет как избежать записи дублей.
<!--- записываю полученные данные в бд agent_contras --->
$agent_contra= new AgentContra();
$agent_contra->name=$request->input('agent_contra');
$agent_contra->save();
//пробовал писать проверку в самом контроллере
$agents=AgentContra::get();
foreach ($agents as $agent){
$prover_agent=$agent->name;
if($prover_agent ==$request->input('agent_contra')){
}else{
$agent_contra= new AgentContra();
$agent_contra->name=$request->input('agent_contra');

$agent_contra->save();
}
}
// проблема не ришалась, а только усугубилась) записывать всё равно, проверка не отрабатывает.
Большое спасибо.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Что есть дубль? Какой признак у поступающих данных с формы, чтобы ты понимал, что это дубль?
 

Metors

Новичок
Что есть дубль? Какой признак у поступающих данных с формы, чтобы ты понимал, что это дубль?
Дубль в моём понимании когда в базу записываются данные которые есть в базе. Хочу этого момента избежать(избежать повторяющихся данных в базе данных)!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Дубль в моём понимании когда в базу записываются данные которые есть в базе. Хочу этого момента избежать(избежать повторяющихся данных в базе данных)!
Каким образом ты понимаешь, что данные дубль? Это последний наводящий вопрос. Если ты сам ответишь себе на него и проинформируешь нас - достишнешь целей быстрее)
 

Metors

Новичок
Каким образом ты понимаешь, что данные дубль? Это последний наводящий вопрос. Если ты сам ответишь себе на него и проинформируешь нас - достишнешь целей быстрее)
Большое спасибо, за помощь. Не думал ,что задал настолько дибильный вопрос. Валидация требует вывода ошибки ,если данная проверка выполнена, и она бьёт тревогу. но мне валидация не подходит, так.как у меня должна выполняться следующая функция. Я могу оставить всё как есть, и потом кучей проверок убирать повторы, но это не решает проблемы с их записью. И ещё если бы эти контр агенты записывались отдельной формой, и под них создавался свой контроллер или функция. всё было бы супер.Но у меня данная форма выполняет больше 3-х действий одновременно. с создание файла и записью в разные таблицы получаемых данных. при чём эти данные зависят также от таблицы контрагентов. И если ты действительно, знаешь, как можно это сделать, то был бы приёмного благодарен. А просто так засорять такую тему. Думаю не стоит.Ещё раз спасибо.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Если ты не хочешь, чтобы дублировался name, то сделай уникальный индекс.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
ты не знаешь как в phpmyadmin сделать уникальный индекс?
 

Metors

Новичок
Решил, таким образом
$request->validateWithBag('post', [
'agent_contra' => ['required', 'unique:agent_contras,name'],

]);
$agent_contra= new AgentContra();
$agent_contra->name=$request->input('agent_contra');
$agent_contra->save();
 
Сверху