【问题标题】:How To Seed a Laravel Factory with Specific Custom Data如何使用特定的自定义数据播种 Laravel 工厂
【发布时间】:2021-09-30 21:36:40
【问题描述】:

我有一组带有 GPS 坐标的地点,我想用这些地点来播种“地点”表。数据包括自定义标识符、地区、地址和纬度/经度坐标。这对于测试目的很重要。因此,我不想插入一堆假数据,而是想插入一组有意义的预定义数据。我如何在 Laravel Seeder 和 Factory 中做到这一点?

1851    Long Ridge    3196 High Ridge Rd    41.17530211     -73.56473089000001                      
1852    Long Ridge    Fairway Dr            41.17431056     -73.56484688            
1850    Long Ridge    3143 High Ridge Rd    41.17365836     -73.56433814                    
1853    Long Ridge    69 Fairway Dr         41.17321183     -73.56777862
1854    Long Ridge    137 Fairway Dr        41.17195677     -73.56931346
1849    Long Ridge    3081 High Ridge Rd    41.17156046     -73.56332694                    
1857    Long Ridge    55 Greens Cir         41.17155058     -73.56715740999999      
1856    Long Ridge    10 Greens Cir         41.17111036     -73.56860723

【问题讨论】:

    标签: laravel


    【解决方案1】:

    如果您有 JSON 格式的预定义数据,则可以查看以下播种程序代码。

    数据库/seeders/LocationSeeder.php

    <?php
      
    namespace Database\Seeders;
      
    use Illuminate\Database\Seeder;
    use App\Models\Location;
    use File;
      
    class LocationSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            Location::truncate();
      
            $json = File::get("database/data/location.json");
            $locations = json_decode($json);
      
            foreach ($locations as $key => $value) {
                Location::create([
                    "name" => $value->name,
                    "id" => $value->id,
                    ........
                ]);
            }
        }
    }
    

    如果是excel格式,那么你可以使用下面的包。

    https://github.com/Flynsarmy/laravel-csv-seeder

    它是一个数组,然后你可以使用foreach直接插入它。

    如果您有任何其他格式的数据,请告诉我。

    【讨论】:

    • 代码会比链接更好,更有帮助,如果这些网站无法访问,这对任何人都没有用
    • 感谢您的反馈。我添加了代码而不是教程链接。
    • 这绝对是完美的!谢谢你。看起来您需要为 json_decode 安装 ext-json。我没有那个,但会将它添加到 json 作曲家文件中。
    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 2015-09-16
    • 2017-08-02
    • 2016-05-17
    • 2017-12-08
    • 2020-01-29
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多