Добавление, обновление и удаление в БД в Laravel

В этой статье разберём три основных запроса для редактирования данных в базе в Laravel

Добавление

Метод "insert" служит для добавления данных в базу. Он принимаем массив имёт столбцов и их значений:
<?php
   DB::table('users')->insert([
      'email' => 'support@mousedc.ru', 
      'group' => 'admin'
   ]);
?>
Если в таблице, в которую добавляется информация, есть столбец id с автоинкрементацией, то можно одновременно добавить запись в таблицу и получить этот id с помощью метода "insertGetId":
<?php
   $id = DB::table('users')->insertGetId(['email' => 'support@mousedc.ru']);
?>
Одновременно можно добавлять сразу несколько записей, передавая несколько массивов внутри массива для аргумента "insert":
<?php
   DB::table('users')->insert([
      ['email' => 'support@mousedc.ru', 'group' => 'admin'],
      ['email' => 'sales@mousedc.ru', 'group' => 'team'],
   ]);
?>

Обновление

Для обновления данных в таблицах необходимо использовать метод "update". Аналогично "insert" он принимает массив, в котором ключи - это названия столбцов, а значения - то что будет вставлено. Приведём пример изменения одной записи, предварительно ограничив выборку одной записью по id, используя "where":
<?php
   DB::table('users')
      ->where('id', '=', '54')
      ->update(['email' => 'sales@mousedc.ru']);
?>

Удаление

Для удаления записи из таблицы используется метод "delete", который удаляет все записи, находящиеся в выборке. Поэтому при его работе обязательно используйте метод "where", чтобы ограничить выборку. Иначе будут удалены все данные в таблице:
<?php
// удаление пользователя с id = 54
   DB::table('users')->where('id', '=', '54')->delete();

// удаление всех пользователей с id больше 54
   DB::table('users')->where('id', '>', '54')->delete();
?>
Если нужно удалить все записи таблицы и одновременно сбросить счётчики автоинкрементации, то можно использовать метод "truncate":
<?php
   DB::table('users')->truncate();
?>
При использовании операций по удалению и обновлению обязательно ограничивайте выборку данных. Иначе произведёте действие над всей таблицей и потеряете хранимые данные.

Автоматические подсчёты

Существуют два метода для автоматического увеличения и уменьшения значений столбцов. Они соответственно называются "increment" и "decrement". В качестве первого аргумента им передаётся название столбца, с которым производится действие. Вторым аргументом передаётся величина, на которую должно быть изменено значение. если второй аргумент не передать, то будет считаться, что он равен единице "1" :
<?php
// увеличение "votes" на 1
   DB::table('users')->where('id', '=', '54')->increment('votes');

// увеличение "votes" на 8
   DB::table('users')->where('id', '=', '54')->increment('votes', 8);

// уменьшение "votes" на 1
   DB::table('users')->where('id', '=', '54')->decrement('votes');

// уменьшение "votes" на 8
   DB::table('users')->where('id', '=', '54')->decrement('votes', 8);
?>
У этих методов есть и третий аргумент. Его можно использовать, чтобы изменить значения в других ячейках. Аналогично методу "updeate", в него необходимо передать массив из названия поля и нового значения:
<?php
// увеличение "votes" на 9 и поменять поле 'group' на 'admin'
   DB::table('users')->where('id', '=', '54')
      ->increment('votes', 9, ['group' => 'admin']);
?>
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб