factaraidh laravel

Tha Frèam Laravel a’ tighinn le mòran fheartan gus leasachadh lìn a dhèanamh nas fhasa agus nas luaithe.

Is e aon de na prìomh fheartan aig Laravel an comas factaraidhean a chleachdadh gus dàta deuchainn a chruthachadh, eadhon le fakers Laravel.

Anns an artaigil seo chì sinn mar a chleachdas tu am faidhle factaraidh le Laravel agus mar a chuireas tu am DB còmhla ri i faker di Laravel.

Ùine leughaidh tuairmseach: 6 minuti

Dè a th’ ann am Factaraidhean Laravel

Una factaraidh in Laravel is e clas a th’ ann a leigeas leinn dàta deuchainn a ghineadh. Bidh factaraidhean a ’toirt seachad dòigh air modalan a chruthachadh le dàta meallta, a’ cleachdadh Faker Laravel, gus an urrainn dhut an tagradh agad a dhearbhadh gun fheum air fìor dhàta. Tha seo gu sònraichte feumail nuair a leasaicheas tu an tagradh agad agus nuair a dh’ fheumas tu diofar shuidheachaidhean fheuchainn.

Ciamar a chruthachadh Factory

Gus cruthachadh a factaraidh in Laravel, feumaidh sinn an àithne Artisan a ruith make:factory. Bidh an àithne seo a’ cruthachadh clas ùr factaraidh anns an eòlaire database/factories.

Seo eisimpleir de mar a chruthaicheas tu fear factaraidh airson modail User:

php artisan make:factory UserFactory --model=User

Cruthaichidh an àithne seo clas UserFactory anns an eòlaire database/factories. An roghainn --model=User ag innse do Laravel gu bheil an fhactaraidh airson a’ mhodail User.

Mar a chruthaicheas tu am modail Factory

Aon uair 's gu bheil thu air fear a chruthachadh factaraidh, feumaidh tu am modail Factory a chruthachadh. Faodaidh tu seo a dhèanamh le bhith a 'mìneachadh dùnadh san dòigh define den chlas factaraidh.

Seo eisimpleir de mar a mhìnicheas tu a factaraidh airson modail User:

use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;

class UserFactory extends Factory
{
    protected $model = User::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name(),
            'email' => $this->faker->unique()->safeEmail(),
            'password' => bcrypt('password'),
        ];
    }
}

San eisimpleir seo tha sinn a’ mìneachadh factaraidh airson a’ mhodail User. An dòigh-obrach definition a’ tilleadh sreath anns a bheil buadhan a’ mhodail User. Anns a ’chùis seo, bidh sinn a’ gineadh ainm air thuaiream agus seòladh puist-d a ’cleachdadh leabharlann Faker agus a’ suidheachadh am facal-faire gu “facal-faire”.

Mar a chleachdas tu Factaraidh

Aon uair 's gu bheil e air a mhìneachadh a factaraidh, faodaidh tu a chleachdadh gus dàta deuchainn a chruthachadh. Gus aon eisimpleir de mhodail a chruthachadh, faodaidh tu dòighean a chleachdadh makecreate den fhactaraidh.

Seo eisimpleir de mar a chruthaicheas tu teamplaid singilte User a’ cleachdadh an dòigh-obrach create:

$user = Cleachdaiche::factory() -> cruthaich();

Bidh an còd seo a’ cruthachadh modail ùr User le dàta air thuaiream agus ga shàbhaladh don stòr-dàta.

Faodaidh tu cuideachd an dòigh-obrach a chleachdadh make gus am modail a chuir air adhart gun a bhith ga shàbhaladh don stòr-dàta:

$user = Cleachdaiche::factory() -> make();

Bidh an còd seo a’ cruthachadh modail ùr User le dàta air thuaiream ach chan eil e ga shàbhaladh chun an stòr-dàta.

Ma tha thu airson grunn eisimpleirean de mhodail a chruthachadh, faodaidh tu an dòigh a chleachdadh count:

$users = Cleachdaiche::factory()->count(10) -> cruthaich();

Bidh an còd seo a’ cruthachadh 10 modalan ùra User le dàta air thuaiream agus ga shàbhaladh don stòr-dàta.

Laravel Faker

Dè a th’ ann an Laravel Faker? Tha Laravel Faker na leabharlann gineadh PHP dàta meallta Dhutsa. Ma dh'fheumas tu do chuid fhèin a thòiseachadh stòr-dàta, cruthaich sgrìobhainnean XML le deagh shealladh, cuir crìoch air do gheur-leanmhainn gus deuchainn cuideam a dhèanamh air, no gun urra dàta a chaidh a thoirt bho sheirbheis cinneasachaidh, an uairsin feumaidh tu Laravel Fakers a chleachdadh.

Mar a chleachdas tu Fakers

Cuid de bhunaitean:

  • Roghainnean locale bunaiteach Faker : Gu gnàthach, bidh Faker a’ cleachdadh roghainnean locale en_US. Faodaidh tu atharrachadh gus dàta a ghineadh ann an diofar chànanan agus chruthan. Mar eisimpleir, gus an locale Frangach a chleachdadh, chruthaicheadh ​​​​tu eisimpleir Faker ùr mar seo:
    • $faker = Faker\Factory::create('fr_FR');
  • A 'cruthachadh dàta meallta : Faodaidh tu dàta meallta a ghineadh le bhith a’ gairm dhòighean air an eisimpleir Faker agad. Mar eisimpleir, gus ainm meallta a chruthachadh, dhèanadh tu:
    • $name = $faker->name;
  • Cruthan Faker : Bidh Faker a’ toirt seachad mòran chruthan as urrainn dhut a chleachdadh gus diofar sheòrsaichean dàta a ghineadh, leithid seòlaidhean, àireamhan fòn, agus teacsa. Chì thu an liosta iomlan de chruthadairean anns an Stòr-tasgaidh Faker GitHub .

Cruthan Laravel Faker

Is e cruthadairean faker na dòighean a chanas tu gus dàta meallta a ghineadh. Tha iad air an cruinneachadh a rèir gnè, leithid PersonAddressText. Seo mar a chleachdas tu iad:

  • Cothrom air togalach Faker : Gheibh thu cothrom air cruthadair sam bith mar sheilbh. Mar eisimpleir, gus ainm meallta a chruthachadh, faodaidh tu:
    • $name = $faker->name;
  • Gairmean dòigh faker : Faodaidh tu cuideachd gairm chruthan mar dhòighean. Tha seo feumail nuair a ghabhas am fòrmataiche ri argamaidean. Mar eisimpleir, gus àireamh air thuaiream a ghineadh eadar 10 agus 20, faodaidh tu:
    • $number = $faker->numberBetween(10, 20);
  • Deasachadh dàta le mion-atharraichean roghainneil () agus gun samhail () Faker : Leigidh na mion-atharraichean seo dhut smachd a chumail air mar a thèid dàta a chruthachadh. Mar eisimpleir, optional() ag adhbhrachadh gu bheil cruthadair air ais null àireamh sa cheud den ùine, e unique() a’ dèanamh cinnteach nach till cruthadair gu bràth an aon luach dà uair.

Cruthaich solaraiche dàta meallta

Uaireannan chan eil na cruthadairean togte gu leòr. Anns na cùisean sin, faodaidh tu na solaraichean dàta agad fhèin a chruthachadh. Sin mar a tha:

  1. Cruthaich clas ùr a tha a’ leudachadh \Faker\Provider\Base.
  2. Cuir modhan ris airson gach seòrsa dàta a tha thu airson a ghineadh. Faodaidh tu cruthan eile a chleachdadh gus an dàta seo a ghineadh.
  3. Cuir an solaraiche gu Faker leis an dòigh addProvider(). Mar eisimpleir: $faker->addProvider(new MyCustomProvider($faker));

A-nis faodaidh tu na cruthadairean àbhaisteach agad a chleachdadh dìreach mar a chleachdas tu an fheadhainn togte.

Amalachadh Laravel Faker le Factaraidh Laravel

Tha comas-gnìomh factaraidh Laravel a’ fighe a-steach gu math le Faker. Seo mar a chleachdas tu iad còmhla:

  • Mar a chleachdas tu Laravel Faker le Factaraidh Laravel : Anns a’ mhìneachadh fhactaraidh agad, faodaidh tu Faker a chleachdadh gus dàta a ghineadh airson gach feart. Mar eisimpleir, gus factaraidh a chruthachadh airson modal cleachdaiche, dh'fhaodadh tu:
$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
    ];
});
  • A 'cruthachadh aon factaraidh: faodaidh tu factaraidh ùr a chruthachadh a’ cleachdadh an àithne artisan make:factory. Mar eisimpleir, php artisan make:factory UserFactory cruthaichidh e factaraidh ùr airson a’ mhodail Cleachdaiche.
  • Mìneachadh air stàitean factaraidh: Leigidh stàitean factaraidh leat caochlaidhean factaraidh a mhìneachadh. Mar eisimpleir, faodaidh tu an stàit a mhìneachadh verified airson an fhactaraidh cleachdaiche agad a tha a’ suidheachadh a ’ghnè email_verified_at air a’ cheann-latha agus an uair làithreach.

Eisimpleirean practaigeach de bhith a 'cleachdadh Laravel Faker

Seo eisimpleirean de mar as urrainn dhut Laravel Faker a chleachdadh gus dàta meallta a ghineadh:

  • Cruthachadh luchd-cleachdaidh fake : Le Cleachdaiche Factory agus Faker, faodaidh tu luchd-cleachdaidh meallta a chruthachadh mar seo: factory(App\User::class, 50)->create(); Thèid 50 neach-cleachdaidh a chruthachadh le ainmean air thuaiream agus seòlaidhean puist-d.
  • A 'cruthachadh artaigilean fake : Ma tha teamplaid Post agad agus factaraidh co-fhreagarrach, faodaidh tu puist meallta a chruthachadh airson gach neach-cleachdaidh mar seo:
App\User::all()->each(function ($user) {
    $user->posts()->saveMany(factory(App\Post::class, 10)->make());
});
  • A 'cruthachadh bheachdan meallta : San aon dòigh, faodaidh tu beachdan meallta a chruthachadh airson gach post mar seo:
App\Post::all()->each(function ($post) {
    $post->comments()->saveMany(factory(App\Comment::class, 5)->make());
});

Leughaidhean Co-cheangailte

Ercole Palmeri

Autore