diff --git a/app/Models/ORM/Place.php b/app/Models/ORM/Place.php index 47bc174..890d01f 100644 --- a/app/Models/ORM/Place.php +++ b/app/Models/ORM/Place.php @@ -4,6 +4,7 @@ namespace App\Models\ORM; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Database\Eloquent\Casts\Attribute; class Place extends Model { @@ -19,4 +20,27 @@ class Place extends Model protected $fillable = [ 'name','gps', 'phone', 'description', 'url', 'address' ]; + + protected function formattedPhone(): Attribute + { + return Attribute::make( + get: function () { + // Берем оригинальное значение из базы (например: 79991110101) + $phone = $this->phone; + + // Если номер начинается с 8 или 7 и в нем 11 цифр + if (strlen($phone) === 11) { + return '+7 (' . substr($phone, 1, 3) . ') ' . substr($phone, 4, 3) . '-' . substr($phone, 7, 2) . '-' . substr($phone, 9, 2); + } + + // Если номер записан без семерки (всего 10 цифр, например: 9991110101) + if (strlen($phone) === 10) { + return '+7 (' . substr($phone, 0, 3) . ') ' . substr($phone, 3, 3) . '-' . substr($phone, 6, 2) . '-' . substr($phone, 8, 2); + } + + // Если формат странный (например, городской короткий), выводим как есть + return $phone; + } + ); + } } diff --git a/resources/views/places/index.blade.php b/resources/views/places/index.blade.php index e9ac181..cfdc2b5 100644 --- a/resources/views/places/index.blade.php +++ b/resources/views/places/index.blade.php @@ -44,7 +44,7 @@