yang kuat untuk penciptaan data yang cekap. Kaedah ini amat berguna apabila membina struktur data yang kompleks dengan hubungan yang saling berkaitan, mengelakkan instantiasi model yang berlebihan. Kaedah recycle
menggunakan semula contoh model sedia ada di pelbagai panggilan kilang, meningkatkan prestasi. recycle
<?php namespace Tests; use App\Models\Store; use App\Models\Product; use App\Models\Category; use App\Models\Order; use Tests\TestCase; class StoreTest extends TestCase { public function test_sales_report_generation() { // Establish foundational data $store = Store::factory()->create(); $categories = Category::factory(3)->recycle($store)->create(); // Populate categories with products $products = Product::factory(20)->recycle($store)->recycle($categories)->create(); // Generate orders referencing existing products $orders = Order::factory(50)->recycle($store)->recycle($products)->create()->each(function ($order) use ($products) { // Assign random products to each order $orderProducts = $products->random(rand(1, 5)); $order->products()->attach( $orderProducts->pluck('id')->mapWithKeys(function ($id) { return [$id => ['quantity' => rand(1, 5)]]; }) ); }); // Validate report generation $report = $store->generateSalesReport(); $this->assertNotNull($report); $this->assertEquals(50, $report->total_orders); } }
menyelaraskan penciptaan pangkalan data ujian. Daripada berulang kali mencipta recycle
, Store
, dan Category
contoh, kaedah Product
menggunakannya semula, mengakibatkan pelaksanaan ujian yang lebih cepat dan penggunaan sumber yang dikurangkan. Ini amat bermanfaat apabila berurusan dengan dataset besar atau hubungan rumit dalam model aplikasi anda. recycle
Atas ialah kandungan terperinci Mengoptimumkan penciptaan data kilang dengan kaedah kitar semula Laravel ' s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!