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