【问题标题】:How write seeder in Laravel如何在 Laravel 中编写播种机
【发布时间】:2018-01-23 01:33:39
【问题描述】:

我有可标记的表格,它是多对多多态关系(标记和帖子)的表格:

taggable_id - id of Post
tag_id - id of Tag
taggable type - location of post model (default value"App/Models/Posts/Post")
is_search_term - boolen (0 or 1)

如何创建每次为关系创建相同记录的播种机?

【问题讨论】:

标签: php laravel laravel-5 php-7 laravel-seeding


【解决方案1】:

tag_id 如果设置为主键,db 会自动创建, taggable_id 你从 Tag 模型中获取值。

你可以试试这样的;

$factory->define(App\Tag::class, function (Faker\Generator $faker) {
    return [
        'taggable_id' => random_int(\DB::table('posts')->min('id'), \DB::table('posts')->max('id')),
        'is_search_term'=>$faker->numberBetween(0,1),
'taggable_type'=>$faker->sentence(2),

    ];
});

【讨论】:

  • 但是当我开始新播种时,它是带有标签的新关系帖子。
  • 什么意思??
  • 我开始播种的所有时间关系必须相同(表中的字段必须相同,但不是随机的)
  • 例如,id 为 1 的帖子,总是必须有 id 为 1 和 id2 的标签
  • 初始化 Post 并创建一个 post 播种器; $post = 新帖子;然后引用关系 'taggable_id'=> $post->tags->id
猜你喜欢
  • 2014-09-05
  • 2022-11-27
  • 2023-01-12
  • 2015-02-10
  • 2018-04-22
  • 2019-11-02
  • 1970-01-01
  • 2018-06-15
相关资源
最近更新 更多