teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

より良い方法の提案

2016/10/12 05:24

投稿

natady
natady

スコア606

answer CHANGED
@@ -14,4 +14,10 @@
14
14
  $test = Test::where('login_id', $id)->first();
15
15
  $test->memo = $memo;
16
16
  $test->save();
17
+ ```
18
+
19
+ もしくはこのように`update()`メソッドを使っても良いかもしれません。
20
+
21
+ ```php
22
+ Test::where('login_id', $id)->update(['memo' => $memo]);
17
23
  ```

1

方法2は動作しなかった。

2016/10/12 05:23

投稿

natady
natady

スコア606

answer CHANGED
@@ -1,17 +1,11 @@
1
1
  `get()`はデフォルトでは結果が1件の場合でも「配列」を返します。`get()`をつかう場合はこのようになります。
2
2
 
3
3
  ```php
4
- // 方法1
5
4
  $tests = Test::where('login_id', $id)->get();
6
5
  foreach($tests as $test) {
7
6
  $test->memo = $memo;
8
7
  $test->save();
9
8
  }
10
-
11
- // 方法2
12
- $test = Test::where('login_id', $id)->get()->toArray()[0];
13
- $test->memo = $memo;
14
- $test->save();
15
9
  ```
16
10
 
17
11
  結果が1件だと分かりきっている場合は`first()`を使いましょう。