我有一个简单的问题,但我没有在网上找到答案。也许我的关键字是错误的。
所以我正在 Laravel 4 中开发一个应用程序。我需要根据当前的活动环境为数据库播种不同的值。
例如,如果我在本地环境中,我想要测试数据等等。但是当我在生产环境中时,我只想拥有一个管理员用户。
Laravel 有内置的解决方案吗?
如果没有,如何检查app/seeds/DatabaseSeeder.php
文件中哪个环境处于活动状态。所以我可以根据环境调用不同的播种机。
没有以您想要的方式用于不同环境的内置处理程序。
在播种器类中,您应该能够使用App::environment()来检测环境,并在此基础上执行逻辑。
您可以在每个表播种器类或DatabaseSeeder.php文件中添加它:
public function run()
{
Eloquent::unguard();
if( App::environment() === 'development' )
{
$this->call('UserTableSeeder');
}
}
考虑在app/config/database.php
文件中添加多个数据库连接。这样,您可以从同一环境中的多个连接填充数据库,而不是按环境播种(并且环境仍然可以更改,但有 2 个或更多单独的数据库连接)。
如果这适合您的用例,请在此处查看我对多个数据库连接的回答。