Общее соглашение laravel - использование имени в единственном числе для модели и имени во множественном числе для таблицы.Обратите внимание, что вы можете изменить имя связанной таблицы, используя protected $table = 'yourTableName';
в вашей модели.Я лично считаю, что установка вручную - это хорошая практика.
Я не могу объяснить, как он получает имя связанной таблицы, поскольку это будет эссе (также я не уверен, что смогу объяснить должным образом), но я могу отправить вас в правильном направлении.
Так как laravel является открытым исходным кодом, вы можете на самом деле подняться под капот и посмотреть, как он работает.Вы можете перейти на framework/src/Illuminate/Database/Eloquent/Model.php
или посмотреть онлайн , чтобы увидеть связанные функции.Вы увидите функцию getTable
, которая будет возвращать имя таблицы.Но он использует другую функцию.Поэтому вам нужно посмотреть, что находится в этой функции.
После нескольких копаний вы увидите, что Laravel фактически использует другую библиотеку, чтобы помочь получить имя проекта.Используется инфлектор .Вы можете просмотреть немного об этом, чтобы понять, как он получает имя во множественном числе.Там вы можете найти базовый код, правила и т. Д., Чтобы понять, как это работает.