1. Go to this page and download the library: Download laragear/populate library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laragear / populate example snippets
use Laragear\Populate\Seeder;
class UserSeeder extends Seeder
{
public function seedNormalUsers()
{
//
}
public function seedBannedUsers()
{
}
}
namespace Database\Seeders:
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Laragear\Populate\Seeder;
class UserSeeder extends Seeder
{
/**
* Run logic before executing the seed steps.
*/
public function before(): void
{
// if (false) {
// $this->skip();
// }
}
/**
* Populate the database with records.
*/
public function seed(): void
{
//
}
/**
* Run logic after executing the seed steps.
*/
public function after(): void
{
//
}
}
> namespace Database\Seeders;
>
> // use Illuminate\Database\Seeder;
> use Laragear\Populate\Seeder;
>
> class UserSeeder extends Seeder
> {
> //..
> }
>
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()]);
}
}
use Database\Factories\UserFactory;
public function seedNormalUsers(UserFactory $users)
{
return $users->count(5);
}
use Laragear\Populate\Attributes\SeedStep;
#[SeedStep(as: 'Seed non-authorized users')]
public function bannedUsers(UserFactory $users)
{
$users->banned()->count(2)->create(['ticket' => $this->ticket->generate()]);
}
use Database\Factories\UserFactory;
use Database\Factories\CommentFactory;
use Laragear\Populate\Seeder;
class UserSeeder extends Seeder
{
// ...
public function seedMutedUsers(UserFactory $factory)
{
$users = $factory->muted()->create(3);
$this->call(CommentSeeder::class, [
'seedModeratedComment' => ['users' => $users],
]);
}
}
class CommentSeeder extends Seeder
{
public function seedModeratedComment(CommentFactory $comments, $users)
{
foreach ($users as $user) {
$comments->for($user)->moderated()->create();
}
}
}
use Illuminate\Contracts\Config\Repository;use Illuminate\Contracts\Routing\UrlGenerator;
use Laragear\Populate\Seeder;
class CommentSeeder extends Seeder
{
public function before(UrlGenerator $url)
{
// ...
}
public function after(Repository $config)
{
// ...
}
}
use Laragear\Populate\Seeder;
class CommentSeeder extends Seeder
{
public function onError($exception)
{
// ...
}
}
public function onError($exception)
{
return new RuntimeException('The seeder failed', previous: $exception);
}
use App\Models\User;
use Database\Factories\UserFactory;
public function seedBannedUsers(UserFactory $user)
{
if (User::query()->banned()->exists()) {
$this->skip();
}
// ...
}
use App\Models\User;
if (User::query()->banned()->exists()) {
$this->skip('There are already banned users in the database');
}
use App\Models\Comment;
use Laragear\Populate\Seeder;
class CommentSeeder extends Seeder
{
public function before()
{
if (Comment::query()->exists()) {
$this->skip('There are already comments in the database')
}
}
}
use Laragear\Populate\Attributes\SeedStep;
#[SeedStep(retryUnique: false)]
public function bannedUsers
{
// ...
}
use App\Models\Comment;
use Laragear\Populate\Seeder;
class CommentSeeder extends Seeder
{
public bool $usesTransactions = false;
public function seedGuestComments()
{
if (Comment::query()->guest()->exists()) {
$this->skip('There is already guest comments in the database');
}
// ...
}
// ...
}
use App\Models\Comment;
use Laragear\Populate\Seeder;
class CommentSeeder extends Seeder
{
public function seedGuestComments()
{
$factory = Comment::factory();
// ...
}
// ...
}