Освоение таблиц базы данных Laravel в ваших моделях: подробное руководство

В Laravel модели служат мостом между вашим приложением и базой данных. Они представляют таблицы базы данных и предоставляют выразительный способ взаимодействия с данными. В этой статье мы рассмотрим различные методы работы с таблицами базы данных Laravel в моделях, используя разговорный язык и примеры кода для упрощения процесса обучения.

  1. Определение имени таблицы:
    По умолчанию Laravel предполагает, что имя таблицы для модели представляет собой форму множественного числа имени класса модели. Однако вы можете явно определить имя таблицы, добавив в модель защищенное свойство $table.
class User extends Model
{
    protected $table = 'my_users';
}
  1. Указание первичного ключа:
    Если в вашей таблице нет обычного столбца idв качестве первичного ключа, вы можете определить другой первичный ключ в своей модели с помощью $primaryKeyсвойств.
class User extends Model
{
    protected $primaryKey = 'user_id';
}
  1. Указание временных меток.
    По умолчанию Laravel предполагает, что ваша таблица имеет created_atи updated_atстолбцов временных меток. Если в вашей таблице нет этих столбцов, вы можете отключить временные метки для модели, установив для свойства $timestampsзначение false.
class User extends Model
{
    public $timestamps = false;
}
  1. Доступ к столбцам таблицы.
    Чтобы получить доступ к столбцам таблицы, вы можете использовать метод getColumns, предоставляемый фасадом Schema. Этот метод возвращает массив имен столбцов.
use Illuminate\Support\Facades\Schema;
$tableName = (new User())->getTable();
$columns = Schema::getColumnListing($tableName);
foreach ($columns as $column) {
    echo $column . "<br>";
}
  1. Извлечение всех записей.
    Чтобы получить все записи из таблицы, вы можете использовать метод allв модели.
$users = User::all();
foreach ($users as $user) {
    echo $user->name . "<br>";
}
  1. Запрос с условиями.
    Вы можете запросить таблицу на основе определенных условий, используя такие методы, как where, orWhereи whereInпредоставляется построителем запросов Laravel.
$admins = User::where('role', 'admin')->get();
$activeUsers = User::where('status', 'active')->orWhere('status', 'pending')->get();
$managers = User::whereIn('role', ['manager', 'supervisor'])->get();
  1. Создание новых записей.
    Чтобы создать новую запись в таблице, вы можете создать экземпляр нового объекта модели, установить атрибуты и вызвать метод save.
  2. >

$user = new User();
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();
  1. Обновление записей.
    Чтобы обновить существующую запись, извлеките экземпляр модели, измените атрибуты и вызовите метод save.
$user = User::find(1);
$user->name = 'Jane Smith';
$user->save();
  1. Удаление записей.
    Чтобы удалить запись из таблицы, вызовите метод deleteв экземпляре модели.
$user = User::find(1);
$user->delete();

Понимание того, как работать с таблицами базы данных Laravel в моделях, необходимо для создания надежных и эффективных приложений. В этой статье мы рассмотрели различные методы, такие как определение имени таблицы, указание первичного ключа и временных меток, доступ к столбцам, извлечение, запрос, создание, обновление и удаление записей. Освоив эти методы, вы будете хорошо подготовлены к взаимодействию с базой данных в ваших моделях Laravel.