这是我的问题。
我在这个路径中有一个迁移 2013_08_25_220444_create_modules_table.php :
应用程序/模块/用户/迁移/
我创建了一个自定义工匠命令:
<?php
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class UsersModuleCommand extends Command {
/**
* The console command name.
*
* @var string
*/
protected $name = 'users:install';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Instala el modulo de usuarios.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return void
*/
public function fire()
{
echo 'Instalando migraciones de usuario...'.PHP_EOL;
$this->call('migrate', array('--path' => app_path() . '/modules/user/migrations'));
echo 'Done.'.PHP_EOL;
}
/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
//array('example', InputArgument::REQUIRED, 'An example argument.'),
);
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return array(
//array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null),
);
}
}
在 fire() 方法中,我调用了 migrate 命令并传递了一个选项数组。
然后,在我的终端中,我运行以下命令:
php工匠用户:安装
我这是输出:
Instalando migraciones de usuario... 没有什么可迁移的。完毕。
问题是迁移没有运行。
但是如果我在终端中运行这个命令:
php artisan migrate --path=app/modules/user/migrations
一切正常,它运行迁移 2013_08_25_220444_create_modules_table.php
注意:我已经在 app/start/artisan.php 文件中注册了 artisan 命令:
Artisan::add(new UsersModuleCommand);
我究竟做错了什么 ?
对不起我的英语:D