Согласно недавней документации Laravel, отношения модели Eloquent выполняются следующим образом:
$this->hasMany('App\Comment');
Например: https://laravel.com/docs/5.8/eloquent-relationships#one-to-many.
Почему в документации используется строка вместо ::class
? В среде IDE обычно игнорируются строки во время рефакторинга или завершения кода, при этом ::class
устраняет обе проблемы.
$this->hasMany(App\Comment::class);
Мои нынешние догадки:
- Нет обновлений в документации начиная с PHP 5.5 (добавлена поддержка
MyClass::class
).
- Стремительная загрузка классов моделей через импорт PHP, но загрузка классов не так уж велика.
Есть ли серьезный недостаток в использовании ::class
для отношений Eloquent?