Контроллер Laravel хранит данные, полученные в формате camel case

#php #laravel #database #api

Вопрос:

Я работаю с несколькими контроллерами, где я получаю входные данные в формате camel case, и мне нужно присвоить эти свойства модели:

 $scopeCommercial = new ScopeCommercial();
$scopeCommercial->lifetime_sales = $request->lifetimeSales;
$scopeCommercial->lifetime_volumes = $request->lifetimeVolumes;
 

Проблема в том, что моя модель имеет около 30 свойств, и я не хочу записывать их по одному.
Я знаю, что могу использовать запрос для получения всех свойств:

 $input = $request->all();
 

Есть ли способ преобразовать соответствие свойств в формате camel case в стандартный эквивалент базы данных? Что-то вроде обратного метода camel:

 $converted = Str::camel('foo_bar');
 

Ответ №1:

Использование

 $converted = Str::snake('fooBar', '_');
 

подробнее https://laravel.com/docs/8.x/helpers#method-snake-case