2015-05-28 16 views
17

Có lệnh nào xóa an toàn mô hình trong Laravel 5 không? Để tạo mô hình chúng tôi sử dụngLàm thế nào để xóa một mô hình bằng cách sử dụng php nghệ nhân?

php artisan make:model modelname 

Và đó sẽ tạo ra một mô hình dưới app thư mục, và cũng là một di dân trong database/migrations

Nhưng những gì tôi không thể tìm thấy là làm thế nào để xóa một mô hình ...

+0

Bạn sẽ phải xóa mô hình theo cách thủ công. – Robin

+0

Vì vậy, tôi chỉ cần xóa tệp mô hình trong thư mục ứng dụng và di chuyển @RobinR? –

+0

Có nếu bạn muốn xóa tệp di chuyển. Khác nếu bạn muốn thực hiện khôi phục lại quá trình di chuyển, bạn cần phải thực hiện khôi phục. – Robin

Trả lời

23

Xóa mô hình: chỉ cần xóa mô hình dưới App/ hoặc bất kỳ thư mục nào khác.

Xóa một di cư: nếu bạn đã di cư nó (có nghĩa là cơ sở dữ liệu đã bị thay đổi), bạn có hai lựa chọn:

Các "Dự án khởi đầu"/cách xấu xí là để migrate:rollback cho đến khi di chuyển là hoàn tác (nếu nó là lần di chuyển cuối cùng bạn đã làm, một lần khôi phục là đủ, nếu không, bạn sẽ phải khôi phục một vài lần) sau đó xóa tệp di chuyển (tệp bên trong thư mục database/migrations. Điều quan trọng ở đây: lớp di chuyển sẽ vẫn là trình nạp tự động Vì vậy, bạn phải loại bỏ việc di chuyển lớp tải từ vendor/composer/autoload_classmap.php.Có lẽ composer dumpautoload sẽ làm việc, nó không cho tôi mặc dù.Nếu bạn không có dữ liệu quan trọng trong DB và bạn có thể xóa nó, xóa các tập tin di chuyển, composer dumpautoload rồi chạy php artisan migrate:refresh. Điều này sẽ quay trở lại mọi di chuyển sau đó di chuyển mọi thứ trở lại.

Điều này đang được sản xuất và tôi đã sai lầm: tạo một di chuyển khác khi phương thức lên đang giảm bảng di chuyển đầu tiên. phương thức từ lần di chuyển đầu tiên). Để lại hai tệp di chuyển trong đó, không xóa chúng.

Nếu bạn chưa di chuyển, chỉ cần xóa tệp di chuyển, composer dumpautoload và nếu bạn gặp lỗi class/file not found, hãy kiểm tra xem vendor/composer/autoload_classmap.php có lớp của tệp bạn vừa xóa và xóa hàng đó không.

+0

Thanx, trong trường hợp của tôi ứng dụng vẫn còn trong dev. Vì vậy, các bước sẽ giống như trong sản xuất, hoặc tôi chỉ cần xóa chúng? –

+0

Nếu bạn đang ở đầu dev, có nghĩa là DB của bạn vẫn có thể thay đổi, khôi phục cho đến khi việc di chuyển được hoàn tác, hãy xóa tệp di chuyển, 'dumpautoload' và di chuyển lại. Tôi cũng khuyên bạn nên thiết lập một số seeder để thử nghiệm dễ dàng hơn sau đó 'php artisan migrate: refresh --seed'. Tôi sẽ thêm giải pháp làm mới vào câu trả lời. – hfingler

+0

Xóa lớp 'Ứng dụng/mô hình', xóa tệp di chuyển và xóa mục nhập khỏi autoload_classmap.php theo cách thủ công, các bước này có hoạt động không? Hoặc tôi nên sử dụng 'composer dumpautoload' với bất kỳ chi phí nào? – BraveNinja

Các vấn đề liên quan