Пакет Laragear Populate від @DarkGhostHunter – це вдосконалений сідер для застосунків на Laravel. Він пропонує корисні функції поверх стандартної системи заповнення бази даних у Laravel, включаючи можливість продовження невдалих спроб заповнення:
Модифікувавши стандартний Seeder з покращеною версією, ми можемо підвищити ефективність системи заповнення, реалізуючи покрокове заповнення, пропуск та можливість продовження заповнювальних процесів без втрати звичних функцій, забезпечуючи сумісність з класичними класами заповнювачів.
Сідери Populate використовують кроки заповнення, які представлені публічним методом, що починається з seed, або методом з атрибутом SeedStep. Це означає, що ваш сідер може бути більш організованим відповідно до типу даних, які ви хочете заповнити. Наступний приклад з README пакета демонструє кілька методів, які будуть викликані, а також можливість використання залежнісного вприскування:
namespace Database\Seeders;
use Database\Factories\UserFactory;
use Laragear\Populate\Attributes\SeedStep;
use Laragear\Populate\Seeder;
use App\TicketGenerator;
class UserSeeder extends Seeder
{
public function __construct(protected TicketGenerator $ticket)
{
// ...
}
public function seedNormalUsers(UserFactory $users)
{
$users->count(5)->create(['ticket' => $this->ticket->generate()]);
}
public function seedVipUsers(UserFactory $users)
{
$users->vip()->count(3)->create();
}
#[SeedStep]
public function bannedUsers(UserFactory $users)
{
$users->banned()->count(2)->create(['ticket' => $this->ticket->generate()]);
}
}
Окрім виконання кроків заповнення, сідери, що використовують Populate, можуть визначати методи before(), after(), onError(), а також користуватися методом skip() під час виклику before() для пропуску кроку заповнення на основі знайдених умов:
if (User::query()->banned()->exists()) {
$this->skip();
}
У README пакета міститься детальна документація про всі можливості сідерів Laragear Populate. Ви можете дізнатися більше про цей пакет, отримати повні інструкції з установки та переглянути код на GitHub.
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!