почему это работает, хотя имя модели во множественном числе на Laravel? - PullRequest
0 голосов
/ 12 марта 2019

Я новичок в Laravel.

Когда я изучал Laravel, я заметил, что ВСЕ Model, которое я сделал, названо множественным числом, но оно работает правильно.

Мне интересно, как это может произойти, потому что я читаю документы после того, как заметил это, и там написано: «Модель должна быть названа в единственном числе».

Может кто-нибудь объяснить, как это работает ??

P.S. В этой модели нет упоминания $table.

Мне очень жаль, что я хотел сказать "единственное число", а не "слог".

1 Ответ

1 голос
/ 12 марта 2019

Общее соглашение laravel - использование имени в единственном числе для модели и имени во множественном числе для таблицы.Обратите внимание, что вы можете изменить имя связанной таблицы, используя protected $table = 'yourTableName'; в вашей модели.Я лично считаю, что установка вручную - это хорошая практика.

Я не могу объяснить, как он получает имя связанной таблицы, поскольку это будет эссе (также я не уверен, что смогу объяснить должным образом), но я могу отправить вас в правильном направлении.

Так как laravel является открытым исходным кодом, вы можете на самом деле подняться под капот и посмотреть, как он работает.Вы можете перейти на framework/src/Illuminate/Database/Eloquent/Model.php или посмотреть онлайн , чтобы увидеть связанные функции.Вы увидите функцию getTable, которая будет возвращать имя таблицы.Но он использует другую функцию.Поэтому вам нужно посмотреть, что находится в этой функции.

После нескольких копаний вы увидите, что Laravel фактически использует другую библиотеку, чтобы помочь получить имя проекта.Используется инфлектор .Вы можете просмотреть немного об этом, чтобы понять, как он получает имя во множественном числе.Там вы можете найти базовый код, правила и т. Д., Чтобы понять, как это работает.

...