Laravel 阻止工匠提问;是否确实要运行此命令?“;

Laravel 阻止工匠提问;是否确实要运行此命令?“;,laravel,laravel-4,command-line,laravel-artisan,artisan-migrate,Laravel,Laravel 4,Command Line,Laravel Artisan,Artisan Migrate,我刚开始使用Laravel4,在本地主机上运行它。我想知道如何让artisan在每次执行迁移命令时跳过询问您真的希望运行此命令吗??我只想立即执行命令,而不必键入y。也不需要在迁移命令的末尾添加--force 我知道提示在制作中非常重要,但我觉得它有点烦人,尤其是在教程中。我只是想把它关掉,让生活更轻松 任何帮助都将不胜感激。如果您将环境设置为本地,您将不会收到警告问题,因为只有当Laravel检测到您处于生产中时,才会显示警告问题,错误地运行迁移可能会有危险。您只需在bootstrap/sta

我刚开始使用Laravel4,在本地主机上运行它。我想知道如何让artisan在每次执行迁移命令时跳过询问
您真的希望运行此命令吗?
?我只想立即执行命令,而不必键入
y
。也不需要在迁移命令的末尾添加
--force

我知道提示在制作中非常重要,但我觉得它有点烦人,尤其是在教程中。我只是想把它关掉,让生活更轻松


任何帮助都将不胜感激。

如果您将环境设置为本地,您将不会收到警告问题,因为只有当Laravel检测到您处于生产中时,才会显示警告问题,错误地运行迁移可能会有危险。您只需在
bootstrap/start.php
文件中添加以下内容:

$env = $app->detectEnvironment(array(
    // The array value should be your hostname
    'local' => array('your-machine-name'),
));
以上内容将允许Laravel在检测到您的计算机主机名与您指定的主机名冲突时,将环境设置为local,从而避免显示消息



有关配置环境及其优势的更多信息,请阅读。

如果将环境设置为本地,则不会出现警告问题,因为只有当Laravel检测到您处于生产中时,才会出现警告问题,错误地运行迁移可能会很危险。您只需在
bootstrap/start.php
文件中添加以下内容:

$env = $app->detectEnvironment(array(
    // The array value should be your hostname
    'local' => array('your-machine-name'),
));
以上内容将允许Laravel在检测到您的计算机主机名与您指定的主机名冲突时,将环境设置为local,从而避免显示消息



有关配置环境及其优势的更多信息,请阅读。

在Bogdan的回答和评论中添加更多内容

如果您不熟悉Laravel中的环境概念,那么它可以为您的应用程序运行的环境指定不同的配置。例如,您的本地环境中的数据库凭据与live server(生产环境)中的数据库凭据不同

因此,您不应该使用
'local'=>数组(gethostname())
的一个原因是,这将使您的环境
成为本地的
,而不管您在哪里运行它(您的本地机器、测试环境或生产环境)

这是确定env的首选方法

$env = $app->detectEnvironment(function() { 
    return getenv('APP_ENV') ? : 'production'; 
});
因此,除非在VHOST文件中设置了环境变量,否则它将默认为production


但由于您不必指定环境变量,我建议您坚持Bogdan的解决方案。

为Bogdan的答案和评论添加更多内容

如果您不熟悉Laravel中的环境概念,那么它可以为您的应用程序运行的环境指定不同的配置。例如,您的本地环境中的数据库凭据与live server(生产环境)中的数据库凭据不同

因此,您不应该使用
'local'=>数组(gethostname())
的一个原因是,这将使您的环境
成为本地的
,而不管您在哪里运行它(您的本地机器、测试环境或生产环境)

这是确定env的首选方法

$env = $app->detectEnvironment(function() { 
    return getenv('APP_ENV') ? : 'production'; 
});
因此,除非在VHOST文件中设置了环境变量,否则它将默认为production


但是,既然您不必指定环境变量,我建议您坚持使用Bogdan的解决方案。

它奏效了。谢谢不过我应该提到,我使用了
'local'=>数组(gethostname()),
,因为将参数分配给
local
localhost
仍然表示应用程序正在生产中。@Jed但是要注意,这样做,即使应用程序投入生产,它仍然会在本地环境中。更好的选择是
$env=$app->detectEnvironment(函数(){return getenv('app_env')?:'production';})
并在VHOST文件中设置
APP_ENV
。@blackpla9ue是正确的,这样做,无论在哪台机器上运行应用程序,环境都将始终是本地的。在您的终端
php-r“echo gethostname();”
中运行此命令,以获取主机名字符串并使用该字符串来设置环境。此外,如果您说您是Laravel新手,您应该真正了解并学习Laravel 5.1,因为这是最新版本。@blackpla9ue,我感谢您的建议!谢谢只是对我来说,条件是如何工作的没有意义。而且我正在使用WAMP,我不确定如何在vhost文件中设置APP_ENV。你能提供更多关于它的细节吗?或者任何有用的链接都可以。它很有效。谢谢不过我应该提到,我使用了
'local'=>数组(gethostname()),
,因为将参数分配给
local
localhost
仍然表示应用程序正在生产中。@Jed但是要注意,这样做,即使应用程序投入生产,它仍然会在本地环境中。更好的选择是
$env=$app->detectEnvironment(函数(){return getenv('app_env')?:'production';})
并在VHOST文件中设置
APP_ENV
。@blackpla9ue是正确的,这样做,无论在哪台机器上运行应用程序,环境都将始终是本地的。在您的终端
php-r“echo gethostname();”
中运行此命令,以获取主机名字符串并使用该字符串来设置环境。此外,如果您说您是Laravel新手,您应该真正了解并学习Laravel 5.1,因为这是最新版本。@blackpla9ue,我感谢您的建议!谢谢只是对我来说,条件是如何工作的没有意义。而且我正在使用WAMP,我不确定如何在vhost文件中设置APP_ENV。你能提供更多关于它的细节或任何有用的链接吗