условная многоязычная сеялка

0

Предположим, у меня есть таблица, содержащая набор данных на нескольких языках и внешний ключ lang_code ссылающийся на code на языковой таблице.

теперь я должен lang_code таблицу данных на основе lang_code (en, es). Как сделать условную сеялку семян на основе присвоенного значения внешнего ключа, то есть, если lang_code является en затем семена на английском языке и так далее?

вот что я имею в dataTableSeeder

public function run(Faker $faker)
{
    $fakerEs = Faker\Factory::create('es_ES');
    $instructionIDs = DB::table('oes_instructions')->pluck('id')->toArray();;
    $languageIDs = DB::table('oes_languages')->pluck('code')->toArray();;

    foreach (range(1,4) as $index) {
        DB::table('oes_exam_instructions_data')->insert([
        'instruction_id' => $faker->randomElement($instructionIDs),
        'locale' => $faker->randomElement($languageIDs), 
        'content' => $faker->paragraphs(10, $asText = true),   
        //Here ho do i make this based on $languageIDs => $faker->paragraphs(10, $asText = true) 
        'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
        'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
        ]);
    }
}
Теги:
laravel-5
multilanguage

1 ответ

0
Лучший ответ

хорошо было просто, но я думаю, что было бы проще использовать Model Factory.

$fakerEs = Faker\Factory::create('es_ES');
    $instructionIDs = DB::table('oes_instructions')->pluck('id')->toArray();
    $languageIDs = DB::table('oes_languages')->pluck('code')->toArray();

    foreach ($instructionIDs as $instructionID) {
        foreach ($languageIDs as $languageID) {
            $data = ($languageID == 'en') ? $faker->paragraphs(6, $asText = true) : $fakerEs->paragraphs(6, $asText = true);
            DB::table('oes_instructions_data')->insert([
            'instruction_id' => $instructionID,
            'locale' => $languageID,
            'content' => $data,
            'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
            'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
            ]);
        }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню