Разница между «Красноречивой моделью» и «Моделью»?

Итак, я в замешательстве: в официальной документации Laravel говорится:

Eloquent ORM, входящий в состав Laravel, обеспечивает красивую, простую реализацию ActiveRecord для работы с вашей базой данных. Каждая таблица базы данных имеет соответствующую «Модель», которая используется для взаимодействия с этой таблицей.

Хорошо, здесь все отлично, я понял!

Поэтому я делаю переход для создания базы данных: php artisan make: migration create_items_table –create = "items"

Отлично, пока здесь тоже 🙂

Так теоретически, когда я сделаю: php artisan make: model Item , Laravel создаст класс php (который используется для взаимодействия с таблицей элементов):

class Item extends Eloquent { ... } 

Но, в реальном мире, когда я делаю: php artisan make: model Item , Laravel создает php-класс (который используется для взаимодействия с таблицей элементов) ::

  class Item extends Model { ... } 

Так почему модель и не красноречие? Я пропал без вести? И в чем разница между «Элегантной моделью и моделью».

И если есть разница, когда я должен использовать Eloquent и когда Model …?

Спасибо ^^

Я нашел решение для моего вопроса …

Поэтому обычно вы должны добавить псевдоним в config / app.php

  'aliases' => [ 'Eloquent' => Illuminate\Database\Eloquent\Model::class, 

И когда вы создадите модель, Laravel будет use Eloquent; вместо use Illuminate\Database\Eloquent\Model; это почему, я думаю, кто-то может использовать модель, когда другие могут использовать Eloquent, это просто вопрос смысла смысла в пространстве имен: 3

Eloquent – это имя, присвоенное ORM (объектно-реляционное сопоставление), которое поставляется с Laravel. Eloquent позволяет вам взаимодействовать со своими столами, как если бы они были объектами, однако Eloquent не знает о фактических столбцах, которые у вас есть на вашем столе.

Рассмотрим простую User model . Мы хотим, чтобы эта модель запрашивала записи в нашей таблице users .

 class User extends Eloquent { protected $table = 'users'; 

} Это очень простая модель. Теперь вместо запроса так.

 $user = DB::table('user')->find(1); 

Вы можете запросить вот так.

 $user = User::find(1); 

Сам Eloquent использует собственный построитель запросов, но возвращается к стандартным конструкторам запросов. Это означает, что для него доступны все методы в построителе запросов и т. Д.

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

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

Я только коснулся «Красноречивого». Это гораздо больше. Я предлагаю вам взглянуть на следующие ресурсы.

  • Красноречивая документация
  • Код Dayle Rees Happy

Для более точного простого примера нажмите здесь