Ларавель: разница между Схемостроителем и красноречивым никем?
Я новичок в Ларавеле. Итак, если я могу генерировать таблицы с помощью Schema builder, а затем запрашивать данные с помощью запросов, таких как DB::table('user')->find(1)
, где Eloquent вписывается во всю сцену? Какой цели он служит?
1 ответ:
Красноречиво название, данное ORM (объектно-реляционное отображение ), которое поставляется с Laravel. Eloquent позволяет вам взаимодействовать с таблицами, как если бы они были объектами, однако Eloquent не знает о фактических столбцах, которые у вас есть на столе.
Рассмотрим самый простой
User
модель. Мы хотим, чтобы эта модель запрашивала записи в нашей таблицеusers
.class User extends Eloquent { protected $table = 'users'; }
Что существуетОчень простая модель. Теперь, вместо того, чтобы спрашивать Вот так.
$user = DB::table('user')->find(1);
Вы можете запросить подобный этому.
$user = User::find(1);
Сам Eloquent использует свой собственный конструктор запросов, но возвращается к стандартному построителю запросов. Это означает, что у него есть все доступные методы в построителе запросов и многое другое.
Преимущества здесь таковы:
Я коснулся только красноречия. Существует гораздо больше к нему. Я предлагаю вам взглянуть на следующие ресурсы.
- Вам не нужно указывать имя таблицы при каждом вызове.
Код читается намного лучше, это синтаксический сахар.- Вы можете создавать сложные отношения между таблицами и использовать быструю загрузку.
- Вы можете сделать использование таких функциональных возможностей, как защита от массового присвоения и сеттеры/геттеры.
- вы также получаете все преимущества от использования построителя запросов, так что вы можете легко переключаться между СУБД.