Laravel 第二个数据库中的种子表
Laravel seeding tables in second database
connection('mysql2') 是我的(工作)第二个数据库连接。
当我第一次迁移时,连接('mysql2')按预期工作,创建了 table。
Schema::connection('mysql2')->create('brands', function(Blueprint $table)
{
//...
});
但是当我尝试在我的第二个数据库中播种 tables 时:
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use App\Brands;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('BrandsTableSeeder');
$this->command->info("Brands table seeded.");
}
}
class BrandsTableSeeder extends Seeder
{
public function run()
{
DB::connection('mysql2')->table('brands')->delete();
Brands::connection('mysql2')->create(['brand' => 'test']);
}
}
我得到了:
[BadMethodCallException]
Call to undefined method Illuminate\Database\Query\Builder::connection()
你的代码有问题是你使用了 Connection()
方法和 Eloquent(不是 DB),Eloquent 没有 connection()
方法。
您可以使用 on()
方法与模型 (Eloquent) 指定连接
$user = User::on('mysql2')->create(['brand' => 'test']);
引用http://laravel.com/docs/4.2/eloquent#basic-usage
或
而不是到处写 on('mysql2')
你可以在模型中编写如下代码
protected $connection = 'mysql2';
现在种子写成
class BrandsTableSeeder extends Seeder
{
public function run()
{
Brands::truncate();
Brands::create(['brand' => 'test']);
}
}
connection('mysql2') 是我的(工作)第二个数据库连接。
当我第一次迁移时,连接('mysql2')按预期工作,创建了 table。
Schema::connection('mysql2')->create('brands', function(Blueprint $table)
{
//...
});
但是当我尝试在我的第二个数据库中播种 tables 时:
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use App\Brands;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('BrandsTableSeeder');
$this->command->info("Brands table seeded.");
}
}
class BrandsTableSeeder extends Seeder
{
public function run()
{
DB::connection('mysql2')->table('brands')->delete();
Brands::connection('mysql2')->create(['brand' => 'test']);
}
}
我得到了:
[BadMethodCallException]
Call to undefined method Illuminate\Database\Query\Builder::connection()
你的代码有问题是你使用了 Connection()
方法和 Eloquent(不是 DB),Eloquent 没有 connection()
方法。
您可以使用 on()
方法与模型 (Eloquent) 指定连接
$user = User::on('mysql2')->create(['brand' => 'test']);
引用http://laravel.com/docs/4.2/eloquent#basic-usage
或
而不是到处写 on('mysql2')
你可以在模型中编写如下代码
protected $connection = 'mysql2';
现在种子写成
class BrandsTableSeeder extends Seeder
{
public function run()
{
Brands::truncate();
Brands::create(['brand' => 'test']);
}
}