У меня есть таблица app_sessions в моей базе данных с двумя уникальными ключами - device_id и device_token. Я хочу вставить новый сеанс в эту таблицу, только если запись с device_id или device_token не существует, иначе просто обновите сеанс для этой записи.по дубликатному обновлению ключа в laravel 5.0 eloquent
Мы можем сделать это с помощью запроса «insert .... on duplicate key update .....». Но как мы можем добиться этого, используя красноречивый ларавел 5.0.
Примечание: Мы все знаем другие способы сделать это, например, сначала извлекать запись, а затем вставлять или обновлять в зависимости от результатов.
Я получил эту ошибку: MassAssignmentException в Model.php line 452: device_token. Когда я использовал эту функцию, я сохранил device_id, но другой device_token. Но функция updateOrCreate проверяет наличие и состояние столбцов (device_id и device_token). Джефф, ты задаешь мне вопрос? – janardhan
Вам нужно иметь 'device_token' в массиве' $ fillable' на модели, если вы хотите обновить его с помощью массива. Первым массивом должны быть условия, которые вы хотите проверить, если они уже существуют, а второй - те, которые вы хотите обновить. – Jeff
, но это не работает, если у нас есть два условия. Здесь нам нужно проверить, существует ли 'device_id' ** OR **' device_token'. Но функция 'updateOrCreate' принимает только' и условие'. – janardhan