एप्लिकेशन बनाते समय, चाहे वह छोटा हो, मध्यम हो या बड़ा हो। किसी एप्लिकेशन में परीक्षण डेटा का उपयोग करना अपरिहार्य और महत्वपूर्ण है।
तो आइए दो अलग-अलग परिदृश्यों के साथ सरल से उन्नत की ओर शुरुआत करें।
मैं। सभी एप्लिकेशन या अधिकांश एप्लिकेशन में उपयोगकर्ता होने चाहिए। कभी-कभी, हम उपयोगकर्ताओं को एडमिन या नियमित उपयोगकर्ता के रूप में वर्गीकृत/टैग करना चाहते हैं। तो आइए नीचे सूचीबद्ध तालिका विनिर्देशों के साथ 100 उपयोगकर्ताओं के साथ एक सरल सीडर तैयार करें:
तो अब हम शुरू करें।
users तालिका में शामिल होने के लिए, निश्चित रूप से, आपके पास Laravel द्वारा आपके लिए बनाई गई डिफ़ॉल्ट उपयोगकर्ता माइग्रेशन तालिका होगी।
तो इस प्रदर्शन के लिए, आपका टेबल माइग्रेशन इस तरह दिखना चाहिए:
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->string('password'); $table->enum('user_type', ['user','admin'])->default('user'); $table->rememberToken(); $table->timestamps(); }); }
हमारी उपयोगकर्ता तालिका के लिए एक सीडर क्लास बनाने के लिए।
php artisan make:seeder UserSeeder
इसलिए, हमारे द्वारा अभी बनाए गए सीडर के लिए मान बनाने के लिए हमें डिफ़ॉल्ट फ़ेकर पैकेज का उपयोग करने की आवश्यकता है जो प्रत्येक लारवेल एप्लिकेशन के साथ आता है।
एक बार में 100 उपयोगकर्ता उत्पन्न करने के लिए, हम पहले एक फॉर-लूप करते हैं और नकली/छद्म डेटा को इस तरह प्रत्येक कॉलम में पास करते हैं:
use Faker\Factory as Faker; public function run() { $faker = Faker::create(); for(i = 0; i $faker->firstName(), 'last_name' => $faker->lastName(), 'email' => $faker->email(), 'password' => bcrypt('hello1234'), // we might want to set this to a value we can easily remember for testing sake 'user_type' => $faker->randomElement(['admin', 'user']) ]); } }
इसे डेटाबेस में जोड़ने के लिए, हमें नीचे दिए गए कमांड को चलाने की आवश्यकता है:
php artisan db:seed --class=UserSeeder
यह 100 उपयोगकर्ता बनाएगा और उन्हें डेटाबेस में सम्मिलित करेगा।
यह इतना आसान है।
तो अब, एक अधिक उन्नत समाधान की ओर।
हमें बनाने की आवश्यकता है:
हम पहले से ही जानते हैं कि उपयोगकर्ता तालिका कैसी दिखेगी, आइए देखें कि कर्मचारी और विभाग तालिका कैसी दिखेगी।
कर्मचारी तालिका
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });
विभाग तालिका:
Schema::create('departments', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); });
इसलिए हमें इन तालिकाओं को अपने डेटाबेस में रखने के लिए माइग्रेशन चलाने की आवश्यकता है।
अब, UserSeeder वर्ग के लिए, हमें पहले बताए गए बुलेट बिंदुओं को लागू करना है।
$now = now(); $count = 0; $departmentNames = ['Electronics', 'Home & Garden', 'Toys & Games', 'Health & Beauty', 'Automotive', 'Sports & Outdoors','Clothing & Accessories', 'Books', 'Music', 'Movies & TV', 'Grocery' ]; for ($j=0; $j $departmentNames[$j], 'created_at' => $now, 'updated_at' => $now, ]); $count ; }
अंतिम दो बुलेट बिंदुओं को एक साथ लागू करने की आवश्यकता होगी
if ($count == 10) { // we need to make sure we have all 10 departments $departments = Department::pluck('id')->toArray(); for ($i=0; $i $faker->firstName(), 'last_name' => $faker->lastName(), 'email' => $faker->email(), 'password' => bcrypt('hello1234'), 'user_type' => $faker->randomElement(['admin', 'user']), 'created_at' => $now, 'updated_at' => $now ]); Staff::create([ 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->email, 'user_id' => $user->id, 'department_id' => $faker->randomElement($departments), // pick random departments from DB 'created_at' => $now, 'updated_at' => $now ]); } }
स्पष्टीकरण:
हमने पहले 10 विभाग बनाए।
फिर हमने यह जांचने के लिए एक काउंटर स्थापित किया कि क्या सभी 10 विभाग बनाए गए हैं।
यदि काउंटर शर्त सत्य है, तो हम 100 उपयोगकर्ता बनाते हैं।
इन 100 उपयोगकर्ताओं में से प्रत्येक के लिए, हमें उनके विवरण को स्टाफ़ तालिका नामक एक अन्य तालिका में संदर्भित करने की आवश्यकता है।
प्रत्येक कर्मचारी एक उपयोगकर्ता से संबंधित होना चाहिए और एक विभाग से भी संबंधित होना चाहिए, इसलिए ऐसा करने के लिए, हमें पहले बनाए गए सभी विभागों को प्राप्त करना होगा और उन्हें विभाग_आईडी कॉलम में यादृच्छिक रूप से इंजेक्ट करना होगा।
पूर्ण यूजरसीडर कार्यान्वयन
$now = now(); $count = 0; $departmentNames = ['Electronics', 'Home & Garden', 'Toys & Games', 'Health & Beauty', 'Automotive', 'Sports & Outdoors','Clothing & Accessories', 'Books', 'Music', 'Movies & TV', 'Grocery' ]; for ($j=0; $j $departmentNames[$j], 'created_at' => $now, 'updated_at' => $now, ]); $count ; } $faker = Faker::create(); if ($count == 10) { $departments = Department::pluck('id')->toArray(); for ($i=0; $i $faker->firstName(), 'last_name' => $faker->lastName(), 'email' => $faker->email(), 'password' => bcrypt('hello1234'), 'user_type' => $faker->randomElement(['admin', 'user']), 'created_at' => $now, 'updated_at' => $now ]); Staff::create([ 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->email, 'user_id' => $user->id, 'department_id' => $faker->randomElement($departments), // pick random departments from DB 'created_at' => $now, 'updated_at' => $now ]); } }
तो भागो:
php artisan make:seeder --class=UserSeeder
यदि आपके कोई प्रश्न हैं, तो उसे छोड़ने में संकोच न करें। हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3