для целевой вставки или обновления
Вы должны использовать id
таблицы местоположений в качестве первичного ключа, а некоторые другие поля можно установить в качестве уникального ключа. Я использовал онлайн-генератор, чтобы получить следующее определение таблицы.
CREATE TABLE `locations` (
`id` BIGINT unsigned NOT NULL AUTO_INCREMENT,
`user_id` BIGINT unsigned,
`latitude` FLOAT(11.8),
`longitude` FLOAT(11.8),
UNIQUE KEY `locations_primary_key` (`id`) USING BTREE,
UNIQUE KEY `locations_unique_01` (`user_id`,`latitude`,`longitude`) USING BTREE,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
В laravel вы можете использовать FirstOrNew
или FirstOrCreate
для вставки или обновления вашей записи. Любая помощь, которую вы можете получить в laravel документах здесь . Вот пример только для ориентации (сейчас я не могу проверить код):
$user_id = 1;
$location = App\Location::firstOrCreate(
['user_id' => $user_id],
['latitude' => 10.12345, 'longitude' => 9.876]
);