Palych_tw
@Palych_tw
Типа веб-разработчик

Почему Eloquent в Laravel не переводит свойства модели из camelCase в snake_case?

Собственно, вопрос в чем. Нужно сделать пару простых правок в чужом приложении.
Развернул локальную копию у себя. Во всех моделях свойства написаны camel case'ом, а колонки в таблицах snake case'ом.
И при каждой попытке записи/обновления я получаю ошибки, что нет таких колонок в базе данных.

Например, вот модель
/**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'userId',
        'descIntroductionId',
        'isBlessed',
        'gender',
        'firstName',
        'lastName',
        'imageFileName',
        'deceasedAt',
        'phone',
        'funeralAt',
        'includeHebrewDate',
        'includeCivilDate',
        'descCemeteryId',
        'descShivaId',
        'shivaAddress',
        'descMournersId',
        'obituaryImageFileName',
        'landingHash',
    ];

а вот колонки
5bec0f5d641fe898561518.png
ну и ошибка при вставке данных
Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'isBlessed' in 'field list' (SQL: insert into `obituaries` (`isBlessed`, `gender`, `firstName`, `lastName`, `deceasedAt`, `phone`, `funeralAt`....


Я сам никогда так не писал - св-ва всегда были идентичны названиям колонок. И на продакшне же это работает. Где я что упускаю?
  • Вопрос задан
  • 860 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vism
логичных варианта 3.
1. Какие-то настройки PDO
2. Какие-то настройки Базы
3. В вендоре руками сделано какое-то преобразование для полей

Что надо проверить.
1. запросы. Они в коде в camel case или snake case?
2. ответы (поля модели). Они в коде в camel case или snake case
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы