Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to delete a model using php artisan?

Is there a command to safely delete a model in Laravel 5? To create a model we use

php artisan make:model modelname 

And that will create a model under app folder, and also a migration in database/migrations

But what I can't find is how to delete a model...

like image 225
Jonathan Solorzano Avatar asked May 28 '15 21:05

Jonathan Solorzano


People also ask

Does PHP artisan migrate delete data?

Migrate refresh will remove all tables, then reinstall all migrations. So any data will be lost.

How do I delete a record in laravel?

Step 1: Create Controller UserController by executing this command. Step 2: We can delete records in two ways. Second Method: The second way is to delete using the Laravel delete Function and User Model (Easy one). ->name( 'users.


1 Answers

Deleting a model: just delete the model under App/ or whatever other folder.

Deleting a migration: if you have migrated it (meaning the database has suffered changes) you have two choices:

The "project starting"/ugly way is to migrate:rollback until the migration is undone (if it was the last migration you did, one rollback is enough, if not, you're gonna have to rollback a couple of times) then delete the migration file (the one inside the database/migrations folder. Important thing here: the migration's class will still be autoloader by composer. So you have to remove the migration class loading from vendor/composer/autoload_classmap.php. Maybe composer dumpautoload will work, it didn't for me though. If you have no important data in the DB and you can wipe it, delete the migration file, composer dumpautoload then run php artisan migrate:refresh. This will rollback every migration then migrate everything back in.

The "this is in production and I messed up" way: create another migration where the up method is dropping the first migration's table, down is creating it (basically the up method from the first migration). Leave the two migration files in there, don't remove them.

If you haven't migrated it, just delete the migration file, composer dumpautoload and if you have some class/file not found error, check if vendor/composer/autoload_classmap.php has the class of the file you just removed and delete the row there.

like image 167
hfingler Avatar answered Sep 18 '22 14:09

hfingler