Сеялка для сводного стола

У меня есть сводная таблица с тегами, это таблица для полиморфных отношений «многие ко многим» (тег и публикация) в Laravel:

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)

Как создать сидер, который для поста с идентификатором 1 (taggable_id) устанавливает 0 идентификатор тега.

Для записи с идентификатором 2 установите идентификатор тега 1.

Для сообщения с идентификатором 3 установите идентификатор тега 1 и идентификатор 2.


person Georg    schedule 15.08.2017    source источник


Ответы (1)


Попробуй это. Проверьте пространство имен модели, соответствует ли оно вашему соглашению или нет. Поскольку ваш атрибут «тегируемый тип» имеет тип по умолчанию, исключите его из заполнения через подделку.

$factory->define(App/Models/Posts/Post::class, function (Faker\Generator $faker) {

return [
    'taggable_id' => function(){
        return factory('App/Models/Posts/Post')->create()->id;
    },
    'tag_id' => function(){
        return factory('App/Models/Tags/Tag')->create()->id;
    },
    'is_search_term' => $faker->boolean
]; });
person sndsabin    schedule 15.08.2017
comment
@Georg Не могли бы вы уточнить, приятель? - person sndsabin; 15.08.2017
comment
Я хочу, чтобы этот алгоритм создавал такие поля: - person Georg; 15.08.2017
comment
taggable_id 1, tag_id 1 taggable_id 2, tag_id 1 taggable_id 2, tag_id 2 taggable_id 3, tag_id 1 - person Georg; 15.08.2017
comment
Вы имеете в виду, что если у вас есть tagable_id = n, то tag_id = m (m - любое число), но количество записей в таблице с тегами с tag_id для одного и того же tagable_id (taggable_id = n) должно быть меньше n-1? Или если taggable_id = n, то мошенник должен создать несколько записей с tag_id в диапазоне от 1 до n-1 и taggable_id = n? - person sndsabin; 15.08.2017