Я использую Laravel 5. Следующий ввод данных для категорий возвращается в значениях, разделенных запятыми. бизнес, домашний ремонт, полы.Возврат взятых полей перед отправкой в базу данных
// Insert tile tags
$data = array();
$tag_title = $request->tag_title;
$data = explode(',', $tag_title);
foreach($data as $newTag) {
$tag = new Tag;
$tag->tag_title = $newTag;
$tag->save();
}
Проблема есть, вторая категория домашний ремонт уже существует в таблице, которая необходима, чтобы быть уникальным и вызывает очевидное ограничение, таким образом предотвращая любой код, который следует потерпеть неудачу.
Как я могу сначала проверить, есть ли какая-либо из этих категорий/тегов, а затем вернуться к пользователю, которые выполняются при добавлении нового тега?
Или лучше было бы, по моему мнению, проверить записи и вставить только те, которые еще не существуют в таблице. Кажется, много чище. Можно ли это сделать в Ларавеле?
'INSERT IGNORE INTO' может быть тем, что вы ищете, не уверен, как это делается в Ларавале, к сожалению. – Daan
Вы пытались использовать 'firstOrFail()'? - 'try {Model :: where (conditions) -> firstOrFail()} catch (ModelNotFoundException $ e) {Model :: create (data)}' –