我正在尝试播种数据库,我有两个问题
1)当存在一对多关系时,我想在新的种子类中传递另一个类(前一个表)的参数。我怎样才能做到这一点?
2)$row1->table2()->attach($row2->id);
我所做的就是将table2的所有id附加到表1,对吗?
编辑:
class LanguageTableSeeder extends Seeder {
public function run() {
$lingua_it_catFintapelle= Linguacat::create(array(
'nome' => 'Finta pelle',
'descrizione' => 'Finta pelle nautica/Finta pelle tempo libero/Finta pelle aviazione/Finta pelle automoto/finta pelle contract/finta pelle uffici/finta pelle esterni',
'lingua' => 'it-IT',
'id_cat' => $catFintaPelle->id
));
我有这个代码,问题是id_cat字段来自另一个表,我已经播种的另一个类,在数据库播种器类中播种所有允许我重用这样的变量:
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Eloquent::unguard();
$this->call('Seeder');
$this->command->info('Seed complete.');
}
}
class CatTableSeeder extends Seeder {
public function run() {
$catFintaPelle = Cat::create(array(
'path_img' => '/img/Materiale Imbottitura'
));
}
}
class LanguageTableSeeder extends Seeder {
public function run() {
$lingua_it_catFintapelle= Linguacat::create(array(
'nome' => 'Finta pelle',
'descrizione' => 'Finta pelle nautica/Finta pelle tempo libero/Finta pelle aviazione/Finta pelle automoto/finta pelle contract/finta pelle uffici/finta pelle esterni',
'lingua' => 'it-IT',
'id_cat' => $catFintaPelle->id
));
}
}
你在这里看到,我可以在新种子中重复使用种子的id变量,节省了我的时间。 但我读到某个地方,每个表的每个种子应该有自己的类。
答案 0 :(得分:2)
当您播种时,它会假设您正在播种到新数据库,因此您可以对这些值进行硬编码,而不是从另一个表中加载它们。
如果你想附上所有的ID,你可以做这样的事情:
$ids = OtherTable::all()->lists('id'); // this will generate an array of ids
$row1->table2()->sync($ids); // sync the ids with the relation