Enums — відмінне доповнення для PHP і Laravel. Вони покращують читабельність коду й полегшують його підтримку. Якщо ви робите багатомовний додаток, також потрібно перекладати значення Enum. Для цього існує пакет Laravel Enum Translatable від Osama Sadah.
trans() та allTrans()Додайте trait EnumTranslatable до свого класу Enum.
namespace App\Enums\Article;
use Osama\LaravelEnums\Concerns\EnumTranslatable;
enum ArticleStatus: string
{
use EnumTranslatable;
case DRAFT = 'draft';
case PUBLISHED = 'published';
case REJECTED = 'rejected';
}
Створіть файли перекладів у директорії lang вашого Laravel‑додатка. Ключ для перекладу генерується автоматично від імені класу Enum.
Наприклад, у lang/en/enums.php може бути:
return [
'article_statuses' => [
'draft' => 'Draft',
'published' => 'Published',
'rejected' => 'Rejected',
],
];
А у lang/es/enums.php:
return [
'article_statuses' => [
'draft' => 'Borrador',
'published' => 'Publicado',
'rejected' => 'Rechazado',
],
];
Щоб отримати переклад значення Enum, використайте методи trans() або allTrans():
$status = ArticleStatus::DRAFT;
// Get translation in current locale
$translated = $status->trans();
// Get translation in specific locale
$english = $status->trans('en'); // Outputs: Draft
$spanish = $status->trans('es'); // Outputs: Borrador
// or All translations
$allTranslations = $status->allTrans(); // Outputs: ['en' => 'Draft', 'es' => 'Borrador']
Пакет також дозволяє автоматично кастити транслювані Enum у ваших Eloquent‑моделях:
namespace App\Models;
use App\Enums\Article\ArticleStatus;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
//...
protected function casts(): array
{
return [
'status' => ArticleStatus::class,
];
}
}
Дізнатись більше про пакет і переглянути код на GitHub.
Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом