اذهب إلى المحتوى
  • 0

خطأ PHP Error: Class 'Database/Factories/ProfileFactory' not found in عند تحديث مشروع لارافيل Laravel

Emad Saif

السؤال

قمت بتحديث أحد مشاريعي القديمة من لارافيل Laravel الإصدار 6 إلى الإصدار 8 لتجربة المميزات الجديدة، ولكن عندما حاولت أن أستعمل ميزة factories الجديدة لتوليد البيانات في نموذج Model قاعدة البيانات ظهر لي الخطأ التالي:

PHP Error:  Class 'Database/Factories/ProfileFactory' not found in ...

لم أفهم سبب المشكلة، بالرغم من أن الكود سليم ولا أرى به مشكلة:

<?php

namespace Database\Factories;

use App\Profile;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;

class ProfileFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Profile::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'name' => "testing"
        ];
    }
}

كود النموذج Profile:

<?php

namespace App;

use Database\Factories\ProfileFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    use HasFactory;
}

ما سبب المشكلة هنا؟ وكيف أصلح هذا الخطأ في لارافيل Laravel؟

تم التعديل في بواسطة Emad Saif
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الفكرة هي أن هذا الموضوع نفسه قد تم وصفه في دليل التحديث الخاص بلارافيل 8 من نسخ سابقة كتحديث عال التأثير High Likelihood Of Impact لأن منشئات البذرة database seeders و معامل النماذج model factories ابتداءا من هاته النسخة عرفت ضمن نطاقات اسماء namespaces . اذ تقوم لارافيل بالتعرف عليها وتحميلها تلقائيا من ملف composer.json عن طريق معيار psr-4 وهو احد معايير التحميل التي شاع استخدامها في لارافيل. 

لفعل ذلك، أضف تعيينات نطاقات الاسماء الجديدة ضمن كائن psr-4 في autoload:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    }
},

وبالطبع لا تنسى ازالة كائن classmap من autoload:

"classmap": [
     "database/seeds",
     "database/factories"
]

استفد اكثر من هاته الاجابة 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...