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

質問編集履歴

4

ソースコードが間違っていたため

2019/09/06 06:49

投稿

profit3003
profit3003

スコア4

title CHANGED
File without changes
body CHANGED
@@ -32,6 +32,6 @@
32
32
  <form method="post" action="/updUser">
33
33
  名前:<input type="text" name="name">
34
34
  年齢:<input type="text" name="age">
35
- <input type="submit>
35
+ <input type="submit">
36
36
  </form>
37
37
  ```

3

ソースコードが間違っていたため

2019/09/06 06:49

投稿

profit3003
profit3003

スコア4

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  お知恵をお貸し頂けるとありがたいです。
6
6
 
7
7
  ```go
8
- router.GET("/updUser", UpdUser)
8
+ router.POST("/updUser", UpdUser)
9
9
 
10
10
  func (d *SettingController) UpdUser(ctx *gin.Context) {
11
11
  ctx.Request.ParseForm()

2

表現が分かりにくいと思った為、修正しました

2019/09/06 06:40

投稿

profit3003
profit3003

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- gormで更新するフィールドを動的に変更させたい
1
+ POSTで渡した情報をgormで更新させたい
body CHANGED
@@ -1,7 +1,7 @@
1
1
  Ginを用いてWebアプリケーションを作成しています。ORMはgormを使用しています。
2
2
 
3
3
  POSTで渡ったフォームの入力値をDBに更新したいですが、以下のUpdatesを使用した場合では、フィールドがintの値が0で更新されてしまいます。
4
- 以下のHTML例の名前・年齢以外のフィールドに対してもupdUserにPOSTして更新させたいのですが、どのように変更すればよいのでしょうか。
4
+ 以下のHTML例の名前・年齢以外のに対してもupdUserにPOSTしてDBを更新させたいのですが、どのように変更すればよいのでしょうか。
5
5
  お知恵をお貸し頂けるとありがたいです。
6
6
 
7
7
  ```go
@@ -16,7 +16,7 @@
16
16
  attrs[k] = strings.Join(v, "")
17
17
  }
18
18
 
19
- db.Engine.Debug().Model(&User{}).Where("id = ?", 1).Updates(attrs)
19
+ db.Model(&User{}).Where("id = ?", 1).Updates(attrs)
20
20
  }
21
21
  ```
22
22
  ```go

1

一度目の登録を誤った為

2019/09/06 06:31

投稿

profit3003
profit3003

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,27 +1,37 @@
1
- ### 前提・実現こと
1
+ Ginを用いてWebアプリケーションを作成ます。ORMはgormを使用しています。
2
2
 
3
- (例)PHP(CakePHP)●●なシステムを作っています。
3
+ POST渡ったフォーの入力値DBに更新したいですが、以下のUpdatesを使用した場合では、フィールドがintの値が0で更新されしまいます。
4
+ 以下のHTML例の名前・年齢以外のフィールドに対してもupdUserにPOSTして更新させたいのですが、どのように変更すればよいのでしょうか。
4
- ■■な機能実装中に以下のエラーメッセージが発生ました。
5
+ お知恵お貸頂けるとありがいです
5
6
 
7
+ ```go
8
+ router.GET("/updUser", UpdUser)
9
+
10
+ func (d *SettingController) UpdUser(ctx *gin.Context) {
6
- Ginを用いてWebアプリケーションを作成しています。
11
+ ctx.Request.ParseForm()
7
- 入力フォームからPOSTで渡った値を更新
12
+ postForm := ctx.Request.PostForm
8
13
 
14
+ attrs := make(map[string]interface{}, len(postForm))
9
- ### 発生している問題・エラーメッセージ
15
+ for k, v := range postForm {
16
+ attrs[k] = strings.Join(v, "")
17
+ }
10
18
 
19
+ db.Engine.Debug().Model(&User{}).Where("id = ?", 1).Updates(attrs)
20
+ }
11
21
  ```
12
- エラーメッセージ
22
+ ```go
23
+ type User struct {
24
+ ID int
25
+ Name string
26
+ Age int
27
+ Email string
28
+
29
+ }
13
30
  ```
14
-
15
- ### 該当のソースコード
16
-
17
- ```ここに言語名を入力
31
+ ```HTML
32
+ <form method="post" action="/updUser">
33
+ 名前:<input type="text" name="name">
34
+ 年齢:<input type="text" name="age">
35
+ <input type="submit>
18
- ソースコード
36
+ </form>
19
- ```
37
+ ```
20
-
21
- ### 試したこと
22
-
23
- ここに問題に対して試したことを記載してください。
24
-
25
- ### 補足情報(FW/ツールのバージョンなど)
26
-
27
- ここにより詳細な情報を記載してください。