Seeders Reference
π€ Personalβ
EmailSeederβ
Generates random email addresses.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->email('email');
FirstNameSeederβ
Generates first names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->firstName('first_name');
$seeder->firstName('first_name', 'male'); // or with optional gender parameter
FullNameSeederβ
Generates full names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->name('name');
LastNameSeederβ
Generates last names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->lastname('last_name');
$seeder->lastname('last_name', 'female'); // or with optional gender parameter
PasswordSeederβ
Generates passwords.
Parameters:
$min
: Minimum password length.$max
: Maximum password length.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->password('password', $min, $max);
PhoneNumberSeederβ
Generates phone numbers.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->phoneNumber('phone');
TitleSeederβ
Generates name titles (Mr., Dr.).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->title('title');
UsernameSeederβ
Generates usernames.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->username('username');
π Temporalβ
DateSeederβ
Generates random dates.
Parameters:
$format
(string|null, optional): The date format (e.g.,'Y-m-d'
). Default is'Y-m-d'
.
See PHP date format reference for supported formats.$startDate
(string|DateTimeInterface|null, optional): The start date for the range (e.g.,'-30 years'
,'2000-01-01'
). Default is'-30 years'
.$endDate
(string|DateTimeInterface|null, optional): The end date for the range (e.g.,'now'
,'2025-12-31'
). Default is'now'
.$timezone
(DateTimeZone|string|null, optional): Optional timezone for the generated dates (e.g.,'Europe/Lisbon'
). Default isnull
(system default timezone).
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->date('created_at', 'Y-m-d H:i:s', '2020-01-01', '2023-12-31');
TimezoneSeederβ
Generates timezones (e.g., UTC+1).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->timezone('timezone');
π’ Companyβ
CompanyNameSeederβ
Generates company names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->companyName('company');
π° Currencyβ
CurrencyCodeSeederβ
Generates currency codes (USD, EUR).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->currencyCode('currency');
π Geographyβ
AddressSeederβ
Full address.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->address('address');
BuildingNumberSeederβ
Generates building numbers.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->buildingNumber('building');
CitySeederβ
Generates city names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->city('city');
CountrySeederβ
Generates country names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->country('country');
CountryCodeSeederβ
Generates country codes (e.g., PT, US).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->countryCode('code');
LatitudeSeederβ
Generates latitude.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->latitude('lat');
LongitudeSeederβ
Generates longitude.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->longitude('lng');
PostcodeSeederβ
Generates postal codes.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->postcode('zip');
StreetAddressSeederβ
Full street address.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->streetAddress('street');
StreetNameSeederβ
Street names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->streetName('street_name');
StreetSuffixSeederβ
Street suffixes (Ave, Rd, etc.).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->streetSuffix('suffix');
π Internetβ
DomainNameSeederβ
Generates domain names.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->domainName('domain');
Ipv4Seederβ
Random IPv4 address.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->ipv4('ip');
Ipv6Seederβ
Random IPv6 address.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->ipv6('ip');
LocalIpv4Seederβ
Local IPv4 addresses.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->localIpv4('local_ip');
MacAddressSeederβ
MAC addresses.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->macAddress('mac');
UrlSeederβ
Generates URLs.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->url('website');
π’ Numbersβ
DigitSeederβ
Single random digit (0β9).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->digit('digit');
DigitNotSeederβ
Digit excluding specific values.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->digitNot('digit', 4);
DigitalNotNullSeederβ
Non-zero digits.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->digitNotNull('digit');
FloatSeederβ
Generates float values with optional precision and range.
Parameters:
$nbMaxDecimals
(int|null, optional): Number of decimal places. Default is 2.$min
(int|null, optional): Minimum value. Default is 0.$max
(int|null, optional): Maximum value. Default is 1000.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->float('value', 2, 10, 500);
NumberSeederβ
Generic number generation with optional digit control.
Parameters:
$nbDigits
(int|null, optional): The number of digits for the generated number. Default isnull
(no restriction).$strict
(bool|null, optional): Iftrue
, enforces an exact digit count; iffalse
ornull
, allows flexible length.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->number('value', 5, true);
NumberBetweenSeederβ
Generates numbers between a defined range.
Parameters:
$min
(int|null, optional): Minimum value of the range. Default isnull
.$max
(int|null, optional): Maximum value of the range. Default isnull
.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->numberBetween('quantity', 1, 100);
π³ Paymentβ
CreditCardDetailsSeederβ
Generates full credit card details.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->creditCardDetails('cc');
CreditCardExpirationDateSeederβ
Generates expiration dates.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->creditCardExpirationDate('expiry');
CreditCardNumberSeederβ
Valid credit card numbers.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->creditCardNumber('number');
CreditCardTypeSeederβ
Card type (Visa, MasterCard, etc.).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->creditCardType('type');
IbanSeederβ
Generates valid IBANs.
Parameters:
$countryCode
(string|null, optional): Optional ISO country code to generate the IBAN for (e.g., "DE", "FR").$prefix
(string|null, optional): Optional prefix to add before the IBAN.$length
(int|null, optional): Optional fixed length for the generated IBAN.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->iban('iban'); // default random IBAN
$seeder->iban('iban', 'DE'); // IBAN for Germany
$seeder->iban('iban', 'FR', null, 27); // IBAN for France with length 27
SwiftBicNumberSeederβ
Generates SWIFT/BIC codes.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->swiftBicNumber('bic');
π§ͺ Miscellaneousβ
ArraySeederβ
Picks a random value from a given array.
Parameters:
$value
(array): The array of possible values to choose from.$useOrderedValues
(bool, optional): Whether to use values in order (true
) or pick randomly (false
). Default isfalse
.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
// Pick random value from array
$seeder->array('choice', ['red', 'blue', 'green']);
// Pick values in order from array
$seeder->array('choice', ['red', 'blue', 'green'], true);
BooleanSeederβ
Generates a random boolean value (true
or false
).
Parameters:
$chanceOfGettingTrue
(int|null, optional): Probability (0β100) of returningtrue
. Default is 50 (equal chance).
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
// 50% chance of true or false
$seeder->boolean('flag');
// 70% chance to get true
$seeder->boolean('flag', 70);
CsvSeederβ
Extracts values from a CSV file.
Parameters:
$csvFile
(string): The path to the CSV file.$target_csv_column
(string): The column name or index to extract values from.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->csv('field', __DIR__ . 'data.csv', 'id');
EmojiSeederβ
Generates emojis.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->emoji('emoji');
File Seederβ
Reads values from a file and applies logic for selection and renaming.
Parameters:
string $field
: The name of the field.string $source
: Path to the source directory or identifier.string $destination
: Path to the destination directory or identifier.Closure|null $callback
: Optional callback to process each file.Closure|null $renameCallback
: Optional callback to rename the file.string|null $memoryLimit
: Optional memory limit for the seeding process.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$users->file(
'photo',
__DIR__ . DIRECTORY_SEPARATOR . 'photos',
storage_path('app' . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR . 'photos'),
function ($file, $originalName, $row) {
if ($row['gender'] == 'M' && (Str::charAt($originalName, 0) == 'M' || Str::charAt($originalName, 0) == 'm')) {
return true;
}
if ($row['gender'] == 'F' && (Str::charAt($originalName, 0) == 'W' || Str::charAt($originalName, 0) == 'w')) {
return true;
}
return false;
},
function () {
return Str::random(32);
},
'128M'
)->unique();
LanguageCodeSeederβ
ISO language codes (e.g., en, pt).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->languageCode();
LocaleSeederβ
Locale codes (e.g., pt_PT, en_US).
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->locale('locale');
Md5Seederβ
Generates MD5 hashes.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->md5('value');
SequentialNumberSeederβ
Generates incrementing numbers.
Parameters:
$start
(int, optional): The starting number for the sequence. Defaults to 1.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->sequentialNumber('id', 100); // Starts counting from 100
Sha1Seederβ
SHA1 hashes.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->sha1('value');
Sha256Seederβ
SHA256 hashes.
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->sha256('value');
SqlSeederβ
Executes raw SQL to fetch values.
Parameters:
$query
(string): The SQL query to execute.$bindings
(array, optional): The bindings for the SQL query.$preserveOrder
(optional, default false) β Whether to preserve the original order of the SQL results.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->sql('name', 'SELECT name FROM users WHERE active = ?', [1], false);
TimeSeriesSeederβ
Generates time-based sequences (e.g., for charts).
Parameters:
$startDate
(string): The start date for the time series.$endDate
(string): The end date for the time series.$granularity
(string, optional): Granularity of the series, defaults to'daily'
.$entriesPerPeriod
(callable): A function returning the number of entries per period.$entryFactory
(callable): A factory function to create each entry.$deltaAvg
(callable): A function to compute average delta between entries.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->timeSeries('date', '2023-07-08', '2025-05-10', function (DateTime $date) {
$weekDay = $date->format('w');
return [8, 15, 12, 14, 19, 30, 50][$weekDay];
}, function (DateTime $date) {
return [
'date' => $date->format('Y-m-d'),
];
}, deltaAvg: function (DateTime $date, $baseCount) {
$weekDay = $date->format('w');
$min = $baseCount + [5, 7, 5, 5, 10, 15, 30][$weekDay] * -1;
$max = $baseCount + [5, 7, 5, 5, 10, 15, 30][$weekDay];
return $baseCount + rand($min, $max);
});
ValueSeederβ
Static or fixed value.
Parameters:
$value
(mixed): The value to set for the field.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->value('status', 'active');
WeightValuesSeederβ
Picks from a weighted distribution.
Parameters:
$weights
(array): An associative array where keys are values and values are their weights.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->weightValues('color', ['red' => 90, 'blue' => 20, 'green' => 10]);
βοΈ Textβ
BothifySeederβ
Generates a string based on a pattern, replacing ?
with random letters and #
with digits.
Parameters:
$pattern
(string): The pattern to use (e.g.,'??-###'
).
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->bothify('code', '??-###'); // Might generate something like 'AB-593'
LexifySeederβ
Generates a random string by replacing ?
in the pattern with random letters (aβz).
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->lexify('code', '???-???');
LetterSeederβ
Generates a single random letter (aβz). Supports uniqueness if required.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->letter('initial');
RandomStringSeederβ
Generates random alphanumeric strings of a specified length. Ensures uniqueness if required.
Parameters:
$string_size
(int|null, optional): The length of the random string. Default is 16 if not set explicitly.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->randomString('token', 32);
TextSeederβ
Generates random text content with a character limit. Ensures uniqueness if required.
Parameters:
$maxCharacters
(int): The maximum number of characters in the generated text.
Usage:
use IPLeiria\ESTG\EI\DBContextSeeder\TableSeeder;
$seeder->text('description', 200);