Метод snake
Метод snake класса Str преобразует переданную строку в формат snake_case. Этот метод полезен для приведения имён классов, методов или любых других строк к единому стилю написания, используемому в именах переменных, ключах массивов или полях базы данных. Первым параметром передаётся исходная строка, вторым необязательным параметром можно указать разделитель (по умолчанию используется подчёркивание).
Синтаксис
<?php
use Illuminate\Support\Str;
Str::snake($string, $delimiter = '_');
?>
Пример
Давайте преобразуем строку в формате camelCase в snake_case:
<?php
use Illuminate\Support\Str;
$res = Str::snake('helloWorld');
echo $res;
?>
Результат выполнения кода:
"hello_world"
Пример
Давайте преобразуем строку с несколькими заглавными буквами:
<?php
use Illuminate\Support\Str;
$res = Str::snake('mySuperCoolClass');
echo $res;
?>
Результат выполнения кода:
"my_super_cool_class"
Пример
Давайте преобразуем строку с использованием другого разделителя:
<?php
use Illuminate\Support\Str;
$res = Str::snake('userProfileData', '-');
echo $res;
?>
Результат выполнения кода:
"user-profile-data"
Пример
Давайте применим метод к строке, которая уже содержит подчёркивания:
<?php
use Illuminate\Support\Str;
$res = Str::snake('already_snake_case');
echo $res;
?>
Результат выполнения кода:
"already_snake_case"
Пример
Давайте преобразуем строку с аббревиатурами в snake_case:
<?php
use Illuminate\Support\Str;
$res = Str::snake('parseHTMLContent');
echo $res;
?>
Результат выполнения кода:
"parse_h_t_m_l_content"
Пример
Давайте используем метод в реальном сценарии - преобразовании названия модели в имя таблицы:
<?php
use Illuminate\Support\Str;
class UserController extends Controller
{
public function getTableName()
{
$modelName = 'UserProfile';
$tableName = Str::snake($modelName);
$tableName = Str::plural($tableName);
echo $tableName;
}
}
?>
Результат выполнения кода:
"user_profiles"