質問編集履歴
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
ソースコードが間違っていたため
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
お知恵をお貸し頂けるとありがたいです。
|
6
6
|
|
7
7
|
```go
|
8
|
-
router.
|
8
|
+
router.POST("/updUser", UpdUser)
|
9
9
|
…
|
10
10
|
func (d *SettingController) UpdUser(ctx *gin.Context) {
|
11
11
|
ctx.Request.ParseForm()
|
2
表現が分かりにくいと思った為、修正しました
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例の名前・年齢以外の
|
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.
|
19
|
+
db.Model(&User{}).Where("id = ?", 1).Updates(attrs)
|
20
20
|
}
|
21
21
|
```
|
22
22
|
```go
|
1
一度目の登録を誤った為
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,27 +1,37 @@
|
|
1
|
-
|
1
|
+
Ginを用いてWebアプリケーションを作成しています。ORMはgormを使用しています。
|
2
2
|
|
3
|
-
|
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
|
-
|
11
|
+
ctx.Request.ParseForm()
|
7
|
-
|
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
|
-
ここにより詳細な情報を記載してください。
|