Laravel Eloquent — это мощный ORM (объектно-реляционное сопоставление), который упрощает взаимодействие с базой данных в приложениях Laravel. Одним из распространенных требований является получение только имен полей из таблицы базы данных с помощью Eloquent. В этой статье мы рассмотрим несколько методов достижения этой цели, а также приведем примеры кода.
Методы получения имен полей:
-
Использование метода
getTableColumns():$tableName = 'users'; $columns = \Schema::getColumnListing($tableName);Этот метод извлекает массив имен столбцов для указанной таблицы с помощью метода
getColumnListing()из фасада схемы Laravel. -
Использование метода
getFillable():class User extends Model { protected $fillable = ['name', 'email', 'password']; } $user = new User(); $fillableFields = $user->getFillable();Определив свойство
$fillableв модели, вы можете получить заполняемые поля, которые по сути представляют собой столбцы таблицы. -
Использование метода
getAttributes():$user = User::find(1); $attributes = array_keys($user->getAttributes());Этот метод извлекает атрибуты модели в виде ассоциативного массива. Мы можем извлечь ключи, чтобы получить имена полей.
-
Использование метода
getConnection()->getSchemaBuilder()->getColumnListing():$tableName = 'users'; $columns = \DB::connection()->getSchemaBuilder()->getColumnListing($tableName);Этот подход напрямую извлекает имена столбцов с помощью метода
getColumnListing()из построителя схемы подключения к базе данных. -
Использование необработанных запросов SQL:
$tableName = 'users'; $columns = \DB::select("SHOW COLUMNS FROM $tableName"); $columnNames = array_column($columns, 'Field');В этом методе мы выполняем необработанный SQL-запрос для получения столбцов и извлечения атрибута «Поле», используя
array_column().
Извлечение только имен полей из таблицы базы данных — обычное требование при работе с Laravel Eloquent. В этой статье мы рассмотрели несколько методов достижения этой цели. Независимо от того, предпочитаете ли вы использовать методы Eloquent или необработанные SQL-запросы, эти методы помогут вам эффективно получать имена полей. Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования.