Laravel "с" изменяет регистр переменной на регистр змеи
В моем приложении Laravel у меня есть модель, которая определяет отношения, такие как:
public function vitalCategories()
{
return $this->belongsToMany(
'App\Models\Diagonals\VitalLabelCategory',
'vitalLabelCategoryMap',
'vitalLabelId',
'vitalLabelCategoryId');
}
Когда я запрашиваю запись, как показано ниже, я ожидаю, что связь будет доступна с именем переменной vitalCategories
$vitalLabel = VitalLabel::where('label', 'confirmation')->with(['subscribers','vitalCategories','vitals'])->first();
return json_encode($vitalLabel);
Однако приведенный выше запрос создает связь с именем переменной 'vital_categories' следующим образом:
Как я могу заставить laravel прекратить изменять регистр моей переменной для отношения к регистру змеи?
Просто для усмешки, я также пробовал:
$vitalLabel = VitalLabel::where('label', 'confirmation')->with(['subscribers','vitalCategories','vitals'])->first();
$vitalLabel->load('vitalCategories');
$vitalLabel->vitalCategories = $vitalLabel->vitalCategories() ;
return json_encode($vitalLabel);
Который не смог увидеть соответствующие модели:
Итак, я попробовал:
$vitalLabel = VitalLabel::where('label', 'confirmation')->with(['subscribers','vitalCategories','vitals'])->first();
$vitalLabel->load('vitalCategories');
$vitalLabel->vitalCategories = $vitalLabel->vital_categories;
return json_encode($vitalLabel);
Который также не смог увидеть соответствующие модели:
1 answers
Laravel автоматически преобразует имена отношений из camelCase
в snake_case
, когда модель преобразуется в массив (toArray()
) или json (toJson()
).
Итак, атрибут модели на самом деле vitalCategories
, но когда вы выгружаете его как json, он будет напечатан как vital_categories
.
Если вы хотите отключить эту функцию, вы можете установить для свойства $snakeAttributes
вашей модели значение false.
public static $snakeAttributes = false;