मैं के रूप में दस्तावेज के परीक्षण के लिए एक उपयोगकर्ता मॉडल, Laravels ModelFactory उपयोग करने के कुछ विभिन्न रूपों को परिभाषित करने के कोशिश कर रहा हूँ hereLaravel 5.3 अपरिभाषित विधि रोशन डाटाबेस के लिए कॉल सुवक्ता फैक्टरी :: राज्य()
$factory->define(App\User::class, function(\Faker\Generator $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'remember_token' => str_random(10),
'phone' => $faker->phoneNumber,
];
});
$factory->state(App\User::class, 'admin', function (Faker\Generator $faker) {
return [
'groups' => function(App\User $u) {
return App\Models\Group::where('level', '<=', 5)->get()->toArray();
}
];
});
और फिर मैं एक उपयोगकर्ता मॉडल बनाने:
$user = factory(User::class)->states('admin')->make();
लेकिन PHPUnit शिकायत के बिना परीक्षण से बाहर निकलने लगता है। पीएचपी लॉग में, मैं देख रहा हूँ:
Call to undefined method Illuminate\Database\Eloquent\Factory::state()
वहाँ बहुत ज्यादा प्रलेखन Laravel डॉक्स में राज्य() विधि पर नहीं है, और मैं खोज की है और इसके लिए दिखाने के लिए कोई प्रगति के साथ घंटे के लिए प्रयोग किया गया है।
एक sidenote के रूप में: groups
विशेषता कई रिश्तों का जिक्र कर रही है। हालांकि, इस अपवाद को फेंक दिया गया है कि मैं कौन सा मॉडल बना रहा हूं, यहां तक कि साधारण मॉडल भी।
रोशनी \ डेटाबेस \ Eloquent \ फैक्टरी और फैक्टरीबिल्डर कक्षाओं में चारों ओर खुदाई करने के बाद, मैंने पाया कि राज्य() और राज्य() विधियों दोनों गायब पर नवीनतम Laravel शाखा की तुलना में गायब थे। 'संगीतकार अद्यतन' चलाने के बाद, यह मुझे लार्वेल फ्रेमवर्क v5.3.18 में अपडेट किया गया, और अब मॉडल फैक्ट्री राज्य अपेक्षा के अनुसार काम करता है। आपकी मदद के लिए –
धन्यवाद। मेरा सुझाव है कि आप अपने प्रश्न का उत्तर दें। – whoan