如何在Laravel 4中为每个环境设置不同的播种机?

Ref*_*lic 5 php seeding laravel eloquent laravel-4

我有一个简单的问题,但我没有在网上找到答案.也许我的关键字是假的.

所以我在Laravel 4中开发一个应用程序.我需要根据当前的活动环境为数据库设置不同的值.

例如,如果我在本地环境中,我想要测试数据等等.但是当我在生产环境中时,我只想拥有一个管理员用户.

Laravel有内置的解决方案吗?

如果没有,如何检查app/seeds/DatabaseSeeder.php文件中哪个环境是活动的.所以我可以根据环境调用不同的播种机.

fid*_*per 11

没有以您希望的方式为不同的环境提供内置处理程序.

在seeder类中,您应该能够使用App :: environment()来检测环境,并根据它来执行逻辑.

您可以在每个表播种器类中DatabaseSeeder.php文件中添加它:

public function run()
{
    Eloquent::unguard();

    if( App::environment() === 'development' )
    {
        $this->call('UserTableSeeder');
    } 
}
Run Code Online (Sandbox Code Playgroud)

另外

考虑在app/config/database.php文件中添加多个数据库连接.这样,您可以在同一环境中从多个连接填充数据库,而不是在每个环境中进行种子设置(并且环境仍然可以更改,但具有两个或更多单独的数据库连接).

如果这符合您的用例,请在此处查看我对多个数据库连接的回答.