是否有命令在Laravel 5中安全删除模型?要创建模型,我们使用
php artisan make:model modelname
这将在app
文件夹下创建模型,并在database/migrations
但我无法找到的是如何删除模型......
答案 0 :(得分:35)
删除模型:只需删除App/
或其他任何文件夹下的模型。
删除迁移:如果您迁移了迁移(意味着数据库遭受了更改),您有两种选择:
"项目开始" /丑陋的方式是migrate:rollback
,直到撤消迁移(如果这是你做的最后一次迁移,一次回滚就足够了,如果没有,你'我将不得不回滚几次)然后删除迁移文件(database/migrations
文件夹中的文件。重要的是:迁移的类仍然是作曲家的自动加载器。所以你必须删除从vendor/composer/autoload_classmap.php
加载迁移类。也许composer dumpautoload
会起作用,但对我来说却没有。如果您在数据库中没有重要数据并且可以擦除它,请删除迁移文件, composer dumpautoload
然后运行php artisan migrate:refresh
。这将回滚每次迁移,然后重新迁移所有内容。
"这是在制作中,我搞砸了#34;方式:创建另一个迁移,其中up方法正在删除第一个迁移表,down正在创建它(基本上是第一个迁移的up方法)。将两个迁移文件保留在那里,不要删除它们。
如果您尚未迁移它,只需删除迁移文件composer dumpautoload
,如果您遇到class/file not found
错误,请检查vendor/composer/autoload_classmap.php
是否包含该文件的类别刚删除并删除那里的行。
答案 1 :(得分:0)
如果看到此错误,您可以在App文件夹中删除模型(模型已经存在!)
答案 2 :(得分:0)
在vendor / composer / autoload_classmap.php中搜索 Ctrl + F写入型号名称 删除允许编辑此文件夹并删除模型路径
答案 3 :(得分:0)
当您的数据库名称与.env
文件中定义的数据库名称不同时,也会出现此问题。
DB_DATABASE=laravel
默认情况下,.env
中的数据库结构将数据库名称设置为laravel。您可以将laravel
替换为数据库名称。
答案 4 :(得分:0)
这是我为项目创建的用于删除控制器和模型的
app / Console / Commands / RemoveController.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class RemoveController extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'remove:controller {name}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Remove the controller class';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle():void
{
$controllerName = $this->argument('name').'.php';
$controllerPath = base_path('app/Http/Controllers/').$controllerName;
if(file_exists($controllerPath)){
unlink($controllerPath);
$this->line('Controller removed successfully.');
}else{
$this->line('No controller found.');
}
}
}
app / Console / Commands / RemoveModel.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class RemoveModel extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'remove:model {name}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Remove the model class';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle():void
{
$modelName = $this->argument('name').'.php';
$modelPath = base_path('app/').$modelName;
if(file_exists($modelPath)){
unlink($modelPath);
$this->line('Model removed successfully.');
}else{
$this->line('No controller found.');
}
}
}
我希望这对某人有帮助
答案 5 :(得分:0)
没有命令,只需手动操作即可,并且安全
...database/migrations
文件夹中删除迁移php artisan migrate
,请登录到phpmyadmin或SQL(视情况而定),并在数据库中,删除由迁移创建的表为我工作,希望对您有所帮助!
答案 6 :(得分:0)
没有任何工匠命令来做。你想手动做。
您想从 Models 目录中删除您的模型
路径:app\Models\yourmodel.php
下一步您要从迁移文件夹中删除迁移文件
路径:database\migrations\yourmigrationfile.php
注意:如果你已经迁移了,你应该想从你的数据库中删除表。你可以登录到你的phpmyadmin面板,你可以这样做。