Articles

Mar a ghineas tu dàta deuchainn no magadh le Laravel Factory

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 a dhèanamh deficuir crìoch air dùnadh san dòigh define den chlas factaraidh.

Seo eisimpleir de ciamar deficrìoch a chur air aon 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'),
        ];
    }
}

Anns an eisimpleir seo defiCruthaichidh sinn 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 defiaon 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 cha shàbhail e dhan stòr-dàta e.

Artaigilean co-cheangailte

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 an stòr-dàta agad fhèin a thòiseachadh, cruthaich sgrìobhainnean XML a tha a’ coimhead snog, cuir crìoch air do gheur-leanmhainn gus deuchainn cuideam a chuir air, no gun urra dàta a chaidh a thoirt bho sheirbheis cinneasachaidh, feumaidh tu Laravel Fakers a chleachdadh.

Mar a chleachdas tu Fakers

Cuid de bhunaitean:

  • Roghainnean ionadail bunaiteachdefiSgeul Faker : le suidheachadh bunaiteachdefinite, bidh Faker a’ cleachdadh shuidheachaidhean 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 defiNition den 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.
  • Defidùthaich de stàitean factaraidh: Leigidh stàitean factaraidh dhut deficuir crìoch air caochlaidhean factaraidh. Mar eisimpleir, dh'fhaodadh tu defina stàite 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

Leabhar-latha ùr-ghnàthachaidh
Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.

Leugh Ùr-ghnàthachadh sa chànan agad

Leabhar-latha ùr-ghnàthachaidh
Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.

Lean dhuinn