gpt4 book ai didi

database - 拉维尔 4 : Working with relationships in seeds

转载 作者:太空狗 更新时间:2023-10-30 01:41:42 26 4
gpt4 key购买 nike

在 L4 的新种子功能中是否有一种简单的方法来管理多对多关系?

一种方法是为数据透视表制作一个种子,但我需要做很多工作。

对此类事情的良好工作流程有什么想法吗?

最佳答案

在最新版本的 Laravel 4 中,您可以在 DatabaseSeeder 类的“run”方法中定义所有播种器脚本的运行顺序。

public function run()
{
DB::statement('SET FOREIGN_KEY_CHECKS=0;');

$this->call('PrimaryTableOneSeeder');
$this->command->info('The first primary table has been seeded!');

$this->call('PrimaryTableTwoSeeder');
$this->command->info('The second primary table has been seeded!');

$this->call('PivotTableSeeder');
$this->command->info('The pivot table has been seeded!');

DB::statement('SET FOREIGN_KEY_CHECKS=1;');
}

您会注意到我在运行所有播种前后都禁用了外键约束。这可能是不好的做法,但这是我可以使用 truncate 函数为每个表重新设置 id 计数的唯一方法。如果您按照 inserting related models 上的指南进行操作这种做法可能是不必要的。

class PrimaryTableOneSeeder extends Seeder {

public function run()
{
DB::table('primaryone')->truncate();
Primaryone::create(array(
'field' => 'value',
'created_at' => new DateTime,
'updated_at' => new DateTime
));
}

使用mass assignment正如我在我的示例中所做的那样以及最新版本的文档所做的那样,您需要为模型指定一些 protected 或可填充的列。要做到这一点,只需像这样向您的模型添加属性:

class Primaryone extends Eloquent {

protected $guarded = array('id');

关于database - 拉维尔 4 : Working with relationships in seeds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com