В Laravel модели служат мостом между вашим приложением и базой данных. Они представляют таблицы базы данных и предоставляют выразительный способ взаимодействия с данными. В этой статье мы рассмотрим различные методы работы с таблицами базы данных Laravel в моделях, используя разговорный язык и примеры кода для упрощения процесса обучения.
- Определение имени таблицы:
По умолчанию Laravel предполагает, что имя таблицы для модели представляет собой форму множественного числа имени класса модели. Однако вы можете явно определить имя таблицы, добавив в модель защищенное свойство$table.
class User extends Model
{
protected $table = 'my_users';
}
- Указание первичного ключа:
Если в вашей таблице нет обычного столбцаidв качестве первичного ключа, вы можете определить другой первичный ключ в своей модели с помощью$primaryKeyсвойств.
class User extends Model
{
protected $primaryKey = 'user_id';
}
- Указание временных меток.
По умолчанию Laravel предполагает, что ваша таблица имеетcreated_atиupdated_atстолбцов временных меток. Если в вашей таблице нет этих столбцов, вы можете отключить временные метки для модели, установив для свойства$timestampsзначениеfalse.
class User extends Model
{
public $timestamps = false;
}
- Доступ к столбцам таблицы.
Чтобы получить доступ к столбцам таблицы, вы можете использовать методgetColumns, предоставляемый фасадомSchema. Этот метод возвращает массив имен столбцов.
use Illuminate\Support\Facades\Schema;
$tableName = (new User())->getTable();
$columns = Schema::getColumnListing($tableName);
foreach ($columns as $column) {
echo $column . "<br>";
}
- Извлечение всех записей.
Чтобы получить все записи из таблицы, вы можете использовать методallв модели.
$users = User::all();
foreach ($users as $user) {
echo $user->name . "<br>";
}
- Запрос с условиями.
Вы можете запросить таблицу на основе определенных условий, используя такие методы, как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();
- Создание новых записей.
Чтобы создать новую запись в таблице, вы можете создать экземпляр нового объекта модели, установить атрибуты и вызвать методsave.
>
$user = new User();
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();
- Обновление записей.
Чтобы обновить существующую запись, извлеките экземпляр модели, измените атрибуты и вызовите методsave.
$user = User::find(1);
$user->name = 'Jane Smith';
$user->save();
- Удаление записей.
Чтобы удалить запись из таблицы, вызовите методdeleteв экземпляре модели.
$user = User::find(1);
$user->delete();
Понимание того, как работать с таблицами базы данных Laravel в моделях, необходимо для создания надежных и эффективных приложений. В этой статье мы рассмотрели различные методы, такие как определение имени таблицы, указание первичного ключа и временных меток, доступ к столбцам, извлечение, запрос, создание, обновление и удаление записей. Освоив эти методы, вы будете хорошо подготовлены к взаимодействию с базой данных в ваших моделях Laravel.