0

そのため、Laravel のモデル ファクトリを使用してデフォルトのフェイカーではなく、外部 API から自分の dB にデータをシードしようとしていますが、行き詰まっています。以下は私のコードです:

$factory->define(\App\Models\State::class, function(){
    $client = new Client();
    $stateQuery = $client->get('http://states-and-cities.com/api/v1/states');
    $states = $stateQuery->getBody();
    $states = json_decode($states, true);
    foreach ($states as $state) {
        return [
            'name' => $state['name'],
        ];
    }
});

何が起こっているのかというと、期待どおりのリターンが 1 つのレコードのみをシードしているということですが、レコード全体をシードする必要があります。どうすればこれを修正できますか?

4

1 に答える 1

0

次のように試すことができます:

$client = new Client();
$stateQuery = $client->get('http://states-and-cities.com/api/v1/states');
$states = $stateQuery->getBody();
$states = json_decode($states, true);
foreach ($states as $state) {
    \App\Models\State::create(['name' => $state['name']]);
}
于 2016-11-10T13:55:24.747 に答える