Bài viết Câu hỏi About RongvangIT
profile Pic
1
@kiyoshi
   536 Lượt xem
Q&A

Target class [Illuminate\Database\Eloquent\Factory] does not exist

Việc cần giải quyết

Chào các bạn
Mình đang tìm sự hỗ trợ của mọi người.
Mình đang cài nWidart / laravel-modules vào ứng dụng Laravel của mình. Vấn đề phát sinh sau khi mình tạo một Module và tiến hành chạy lệnh migrate.

php artisan module:make Blog

php artisan migrate

Rất mong mọi người chỉ cách giải quyết giùm mình.

Nội dung lỗi

Chương trình trả về lỗi sau khi chạy migrate như sau:

D:\_dev\test>php artisan migrate

   Illuminate\Contracts\Container\BindingResolutionException

  Target class [Illuminate\Database\Eloquent\Factory] does not exist.

  at D:\_dev\test\vendor\laravel\framework\src\Illuminate\Container\Container.php:879
    875
    876         try {
    877             $reflector = new ReflectionClass($concrete);
    878         } catch (ReflectionException $e) {
   879             throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
    880         }
    881
    882         // If the type is not instantiable, the developer is attempting to resolve
    883         // an abstract type such as an Interface or Abstract Class and there is

  1   [internal]:0
      Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(Modules\Attendance\Providers\AttendanceServiceProvider))

  2   D:\_dev\test\vendor\laravel\framework\src\Illuminate\Container\Container.php:877
      ReflectionException::("Class Illuminate\Database\Eloquent\Factory does not exist")

Phương án đã thử

Mình đã thử xóa project và cài lại laravel từ đầu, nhưng lỗi trên vẫn xảy ra.

Trả lời

Copy link

Mình thử thay đổi thứ tự chạy lệnh, tiến hành migrate trước để app cài các table mặc định vào db, sau đó mới chạy lệnh cài laravel-modules thì lỗi trên không xảy ra nữa. Lucky!

profile Pic
0
Copy link

Lỗi bạn đang gặp cho thấy rằng Laravel đang cố gắng giải quyết lớp Illuminate\Database\Eloquent\Factory, nhưng không thể tìm thấy nó. Lớp này thường được sử dụng cho nhà máy mô hình trong Laravel.

Để khắc phục vấn đề này, bạn có thể thực hiện các bước sau:

  1. Kiểm Tra Phiên Bản Laravel: Đảm bảo bạn đang sử dụng một phiên bản Laravel hỗ trợ lớp Illuminate\Database\Eloquent\Factory. Trong các phiên bản cũ hơn, lớp này có thể không tồn tại hoặc có thể là một phần của một gói riêng biệt.

  2. Kiểm Tra Các Phụ Thuộc Composer: Chắc chắn rằng tệp composer.json của dự án Laravel của bạn có các phụ thuộc cần thiết đã được cài đặt. Mở terminal và di chuyển đến thư mục dự án. Sau đó, chạy lệnh sau:

    composer install
    

    Điều này sẽ cài đặt hoặc cập nhật các gói cần thiết.

  3. Kiểm Tra Cấu Hình Nhà Máy Laravel: Đảm bảo dự án Laravel của bạn có các tệp cấu hình nhà máy trong thư mục database/factories. Lớp Factory nên được định nghĩa trong những tệp này.

    Ví dụ, bạn có thể có một tệp như database/factories/ModelFactory.php nơi bạn định nghĩa nhà máy mô hình của mình. Hãy đảm bảo rằng tệp này tồn tại và được cấu hình đúng.

  4. Kiểm Tra Các Nhà Cung Cấp Dịch Vụ: Xác minh rằng các nhà cung cấp dịch vụ của bạn được đăng ký đúng cách. Cụ thể, kiểm tra AttendanceServiceProvider được đề cập trong thông báo lỗi. Hãy đảm bảo rằng nó được đăng ký trong tệp config/app.php.

    'providers' => [
        // ...
        Modules\Attendance\Providers\AttendanceServiceProvider::class,
    ],
    
  5. Xóa Bộ Nhớ Cache Cấu Hình: Nếu bạn đã thay đổi các tệp cấu hình của mình, có thể bạn cần xóa bộ nhớ cache cấu hình. Chạy lệnh sau:

    php artisan config:clear
    

    Điều này sẽ xóa bộ nhớ cache cấu hình.

  6. Chạy Các Phiên Bản: Sau khi thực hiện các bước trên, hãy thử chạy các phiên bản của bạn lại:

    php artisan migrate
    

Nếu vấn đề vẫn tiếp tục sau khi thử nghiệm những bước này, bạn có thể cần cung cấp thêm thông tin về phiên bản Laravel của bạn, cấu trúc thư mục và bất kỳ cấu hình tùy chỉnh nào bạn đã thiết lập.

profile Pic
1
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic