Я работаю в laravel 5.7; У меня есть таблица шарнир между людьми и амулетами (он называется mascotas_personas), поля этой относительной таблицы:
id
id_persona
id_mascota
Мне нужно, чтобы та же комбинация между человеком и амулетом никогда не повторился, но не, как делание утверждения
Если ты это не хочешь сделать на уровне базу данных, как они упомянули об этом в комментариях, ты можешь aГ±adir одна validaciГіn перед тем, как реализовывать операции, в которых ты нуждаешься:
$person = Person::find(1);
$pet = Pet::find(5);
if ($person->pets->contains($pet))
{
return '¡Esta mascota ya es tuya!';
}
else
{
$person->pets()->save($pet); // o attach() si es una relación: m-m.
return '¡Tu mascota fue registrada con éxito!';
}
Я предполагаю, что ты хочешь то, что ты хочешь, он состоит в том, чтобы предотвращать повторение данных (двойственность), хороший этого добиваются от нескольких форм, ты можешь делать это с migration
например:
public function up()
{
Schema::create('persona_pet', function (Blueprint $table) {
$table->integer('id')->unsigned();
$table->integer('person_id')->unsigned()->unique();
$table->foreign('person_id')->references('id')->on('personas');
$table->integer('pet_id')->unsigned()->unique();
$table->foreign('pet_id')->references('id')->on('pets');
$table->timestamps();
});
}
- Надеялся, что он подал тебе
$table->unique(['person_id', 'pet_id'])
для этого случая.
– Francisco Garrido
20.03.2019, 21:40