minnierapi
@minnierapi (ニ ミ)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

laravel for文について

解決したいこと

laravelでgeocoding APiを使用して500件ある住所を緯度経度に変換してDBに保存しようとしています。
現在は、取得した緯度経度をDBに保存を行おうとしている最中です。
しかし、for文での値の取り出し方が判らないため質問させて頂きます。

 写真2枚目の矢印で書いている「$saunas->count()」の所を修正すれば値を取り出せると思っているのですがcodeが分からないため教えて頂きたいです。

ちなみに、このcodeのままvar_dump($value)を実行すると「500件目」の最後のデータだけが表示されます。

また、ここを直すとデータベースに登録できる。なども修正して頂きたいです。
 
宜しくお願い致します。

1.jpg
2.jpg

0

2Answer

具体的なところが分からないので推測になってしまいます。
「具体的なところ」とは例えば、どんなDBになっているのか、どのような値を取り出したいのか、どんな形で保存したいのか、などです。

$saunas = Sauna::select('adress')->get();

for ($i = 0; $i < $saunas->count(); $i++) {
    $sauna = $saunas[$i];
}

この$saunaがまさに更新したいデータなのではないですか?

ちなみに、このcodeのままvar_dump($value)を実行すると「500件目」の最後のデータだけが表示されます。

$saunasの件数が500だとすれば、idが500のデータが取得されると思います。

0Like

Comments

  1. @minnierapi

    Questioner

    仰る通りに$saunaが更新したいデータです。
    どのようにcodeを書けば全て取り出せてデータベースに保存出来るか調べても分からなかったためもう少し教えて頂いても宜しいでしょうか?

データを全て取得するのはall()です。

モデルの取得

データの更新は、更新する属性をセットしsave()を呼び出します。

更新

all()などで取得できるのはモデルの集合です。
つまりその一つ一つはfind()など使って単体で取得した時と同じものなので、同じことができます。

$flights = Flight::all();

foreach ($flights as $flight) {
    echo $flight->name;
    
    // update
    $flight->name = 'update';
    $flight->save();
}
0Like

Your answer might help someone💌