Строгий контроль атрибутов модели
По умолчанию при обращении к несуществующему атрибуту в модели Eloquent возвращается null. Данный подход может скрывать опечатки или логические ошибки. Для предотвращения этого в Laravel существует строгий режим, который активируется методом preventAccessingMissingAttributes().
Включение данного режима, как правило, происходит в методе boot сервис-провайдера, например, AppServiceProvider
use Illuminate\Database\Eloquent\Model;
public function boot(): void
{
Model::preventAccessingMissingAttributes(! app()->isProduction());
}
Если в коде произойдет обращение к атрибуту, которого нет в модели, приложение выбросит исключение MissingAttributeException.
// Этот код приведет к исключению,
// если у модели User нет поля "non_existent_field"
$user = User::find(1);
$value = $user->non_existent_field;
Такая проверка помогает выявлять проблемы на этапе разработки, предотвращая передачу null-значений в другие части системы.
👉 @web_craft | #laravel