Ларавель: разница между Схемостроителем и красноречивым никем?


Я новичок в Ларавеле. Итак, если я могу генерировать таблицы с помощью Schema builder, а затем запрашивать данные с помощью запросов, таких как DB::table('user')->find(1), где Eloquent вписывается во всю сцену? Какой цели он служит?

1 2

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 использует свой собственный конструктор запросов, но возвращается к стандартному построителю запросов. Это означает, что у него есть все доступные методы в построителе запросов и многое другое.

Преимущества здесь таковы:

  1. Вам не нужно указывать имя таблицы при каждом вызове.
  2. Код читается намного лучше, это синтаксический сахар.
  3. Вы можете создавать сложные отношения между таблицами и использовать быструю загрузку.
  4. Вы можете сделать использование таких функциональных возможностей, как защита от массового присвоения и сеттеры/геттеры.
  5. вы также получаете все преимущества от использования построителя запросов, так что вы можете легко переключаться между СУБД.
Я коснулся только красноречия. Существует гораздо больше к нему. Я предлагаю вам взглянуть на следующие ресурсы.