質問編集履歴
13
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -100,7 +100,7 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
最終目的としましては、
|
103
|
+
最終目的としましては、重複なしの日付単位で数えた投稿データの合計値をユーザーの投稿累計日数として表示したいと考えております。
|
104
104
|
|
105
105
|
|
106
106
|
|
12
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -100,7 +100,19 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
最終目的としましては、
|
103
|
+
最終目的としましては、日付(重複なし)の数を足した合計値をユーザーの累計投稿日数として表示したいと考えております。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
例えば、ログインしているユーザーが、2021-05-18、2021-05-19、2021-05-20という日付データを保持している投稿を各日付ごとに2つずつ投稿していると仮定します。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
このような場合、articlesテーブルでは、2021-05-18、2021-05-19、2021-05-20の投稿データが各2つずつ存在しているのでデータ数としては6つあることになると思います。
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
重複なしの日付単位で考えるとユーザーが投稿しているデータは3つになると思います。この重複なしの日付単位で数えた投稿データ数をユーザーの累計投稿日数として扱いたく、累計投稿日数3日という数をarticlesテーブルから取得したいと思い、上記のようなコードを作成致しました。
|
104
116
|
|
105
117
|
|
106
118
|
|
11
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -94,13 +94,13 @@
|
|
94
94
|
|
95
95
|
```
|
96
96
|
|
97
|
-
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、created_atカラム(日付データ)の
|
97
|
+
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、created_atカラム(日付データ)の合計値を取得したいと思い、日付データの重複をなくす為に、繰り返し処理で時刻を削除したフォーマット(年/月/日の状態)に変更した後に``array_unique()``で重複を削除、そして``count()``で合計値を取得すると考え作成しました。
|
98
98
|
|
99
99
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
最終目的としましては、作成したメソッドから得られる
|
103
|
+
最終目的としましては、作成したメソッドから得られる合計値を、リレーションしているユーザーの投稿している日数の合計値として使用したいと考えております。
|
104
104
|
|
105
105
|
|
106
106
|
|
10
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -94,7 +94,9 @@
|
|
94
94
|
|
95
95
|
```
|
96
96
|
|
97
|
-
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、created_atカラム(日付データ)の総件数を取得したいと思い
|
97
|
+
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、created_atカラム(日付データ)の総件数を取得したいと思い、日付データの重複をなくす為に、時刻を削除したフォーマット(年/月/日の状態)に変更した後に``array_unique()``で重複を削除、そして``count()``で合計値を取得すると考え作成しました。
|
98
|
+
|
99
|
+
|
98
100
|
|
99
101
|
|
100
102
|
|
9
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
|
95
95
|
```
|
96
96
|
|
97
|
-
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、データの総件数を取得したいと思い作成しました。日付データの重複をなくす為に、時刻を削除したフォーマットに変更しています。
|
97
|
+
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、created_atカラム(日付データ)の総件数を取得したいと思い作成しました。日付データの重複をなくす為に、時刻を削除したフォーマットに変更しています。
|
98
98
|
|
99
99
|
|
100
100
|
|
8
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
{
|
16
16
|
|
17
|
-
//
|
17
|
+
// articlesテーブルからcreated_atカラムを指定して全件取得(all()で配列化)
|
18
18
|
|
19
19
|
$created_at_columns = $this->select('created_at')->get()->all();
|
20
20
|
|
7
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,13 +30,17 @@
|
|
30
30
|
|
31
31
|
}
|
32
32
|
|
33
|
-
// 重複しているデータを除外
|
33
|
+
// 重複しているデータ(日付)を除外
|
34
34
|
|
35
|
-
|
35
|
+
$unique_created_at = array_unique($created_at);
|
36
36
|
|
37
|
+
// 重複なしのデータ(日付)を数える
|
37
38
|
|
39
|
+
$count_created_at = count($unique_created_at);
|
38
40
|
|
41
|
+
// 合計値をコントローラーに渡す
|
42
|
+
|
39
|
-
|
43
|
+
return $count_created_at;
|
40
44
|
|
41
45
|
}
|
42
46
|
|
@@ -44,7 +48,17 @@
|
|
44
48
|
|
45
49
|
```
|
46
50
|
|
47
|
-
created_atカラムの
|
51
|
+
###articlesテーブルの構造とcreated_atカラムの情報
|
52
|
+
|
53
|
+
articlesテーブル
|
54
|
+
|
55
|
+
|id|user_id|body|created_at|updated_at|
|
56
|
+
|
57
|
+
|:--|:--:|--:|--:|--:|
|
58
|
+
|
59
|
+
|1|1|テスト|2021-05-18 11:02:38|2021-05-18 11:02:38|
|
60
|
+
|
61
|
+
|
48
62
|
|
49
63
|
```
|
50
64
|
|
@@ -52,17 +66,49 @@
|
|
52
66
|
|
53
67
|
```
|
54
68
|
|
69
|
+
|
70
|
+
|
55
|
-
|
71
|
+
###取得結果(dd()で確認)
|
56
72
|
|
57
73
|
|
58
74
|
|
59
|
-
|
75
|
+
created_atカラムの日付データのフォーマット変更時と変更後、重複している日付データの削除後の合計値をdd()で確認
|
60
76
|
|
77
|
+
```
|
78
|
+
|
61
|
-
|
79
|
+
//フォーマットの変更成功
|
80
|
+
|
81
|
+
array:2 [▼
|
82
|
+
|
83
|
+
0 => "2021_05_18"
|
84
|
+
|
85
|
+
1 => "2021_05_22"
|
86
|
+
|
87
|
+
]
|
62
88
|
|
63
89
|
|
64
90
|
|
91
|
+
//count()で合計値の取得成功
|
92
|
+
|
93
|
+
2
|
94
|
+
|
95
|
+
```
|
96
|
+
|
97
|
+
上記のメソッドは、articlesテーブルからcreated_atカラムの日付データを日付重複なしで取得後、データの総件数を取得したいと思い作成しました。日付データの重複をなくす為に、時刻を削除したフォーマットに変更しています。
|
98
|
+
|
99
|
+
|
100
|
+
|
65
|
-
|
101
|
+
最終目的としましては、作成したメソッドから得られる総件数を、リレーションしているユーザーの投稿している日数の合計値として使用したいと考えております。
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
投稿している日数の合計値を表示したいユーザーとリレーションしているarticlesテーブルのcreated_atカラムを、一旦全て取得してその件数分の繰り返し処理で、取得したcreated_atカラムの日付データのフォーマットを変更していることが非常に効率が悪いと思っています。私自身の力ではこのコードに対する改善策が思いつきませんでした。
|
110
|
+
|
111
|
+
|
66
112
|
|
67
113
|
上記コードの改善点、間違い等のアドバイスをいただきたく存じます。
|
68
114
|
|
6
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
###改善の余地があるか知りたいコード
|
1
|
+
###改善の余地があるか知りたいコード
|
2
2
|
|
3
3
|
|
4
4
|
|
5
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,7 +78,7 @@
|
|
78
78
|
|
79
79
|
私、独学で学習しておりまして、学習してきたことが正しくないと言われどの箇所が間違っているのか分からない状態です。
|
80
80
|
|
81
|
-
基礎固めからやり直したいと思っておりますので、もし可能であれば少し具体的に間違いをご指摘いただきたく存じます。
|
81
|
+
指摘を真摯に受け止め、基礎固めからやり直したいと思っておりますので、もし可能であれば少し具体的に間違いをご指摘いただきたく存じます。
|
82
82
|
|
83
83
|
|
84
84
|
|
4
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
###追記
|
76
76
|
|
77
|
-
回答
|
77
|
+
回答者様から、上記のコードは全て間違っているとのご指摘を受けました。
|
78
78
|
|
79
79
|
私、独学で学習しておりまして、学習してきたことが正しくないと言われどの箇所が間違っているのか分からない状態です。
|
80
80
|
|
3
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,7 +52,11 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
|
55
|
+
上記のコードは、articlesテーブルからcreated_atカラムのデータを日付重複なしで取得したいと思い作成しました。
|
56
|
+
|
57
|
+
|
58
|
+
|
55
|
-
articleテーブル
|
59
|
+
articleテーブルの特定カラム(created_at)を指定後、コレクションを配列化してデータを全件取得。
|
56
60
|
|
57
61
|
取得した分だけ繰り返し処理で、日付のフォーマットを変更して空配列に格納後、重複しているデータ(日付)を除外しています。
|
58
62
|
|
@@ -60,7 +64,7 @@
|
|
60
64
|
|
61
65
|
全件データを取得して、その件数分の繰り返し処理を行うことが非常に効率が悪いと思っているのですが、私自身の力では改善策が浮かびませんでした。
|
62
66
|
|
63
|
-
上記
|
67
|
+
上記コードの改善点、間違い等のアドバイスをいただきたく存じます。
|
64
68
|
|
65
69
|
|
66
70
|
|
@@ -72,9 +76,9 @@
|
|
72
76
|
|
73
77
|
回答欄にて、上記のコードは全て間違っているとのご指摘を受けました。
|
74
78
|
|
75
|
-
|
79
|
+
私、独学で学習しておりまして、学習してきたことが正しくないと言われどの箇所が間違っているのか分からない状態です。
|
76
80
|
|
77
|
-
基礎からやり直したいと思っておりますので、もし可能であれば少し具体的に間違いをご指摘いただきたく存じます。
|
81
|
+
基礎固めからやり直したいと思っておりますので、もし可能であれば少し具体的に間違いをご指摘いただきたく存じます。
|
78
82
|
|
79
83
|
|
80
84
|
|
2
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
```php
|
6
|
+
|
7
|
+
class Article extends Model
|
8
|
+
|
9
|
+
{
|
10
|
+
|
11
|
+
|
6
12
|
|
7
13
|
public function countArticleDate()
|
8
14
|
|
@@ -34,6 +40,8 @@
|
|
34
40
|
|
35
41
|
}
|
36
42
|
|
43
|
+
}
|
44
|
+
|
37
45
|
```
|
38
46
|
|
39
47
|
created_atカラムの制約は下記のようになっています。
|
@@ -60,6 +68,20 @@
|
|
60
68
|
|
61
69
|
|
62
70
|
|
71
|
+
###追記
|
72
|
+
|
73
|
+
回答欄にて、上記のコードは全て間違っているとのご指摘を受けました。
|
74
|
+
|
75
|
+
現在、独学で学習している身でして、学習してきたことが正しくないと言われ上記コードのどの箇所が間違っているのか分からない状態です。
|
76
|
+
|
77
|
+
基礎からやり直したいと思っておりますので、もし可能であれば少し具体的に間違いをご指摘いただきたく存じます。
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
何卒、よろしくお願い致します。
|
82
|
+
|
83
|
+
|
84
|
+
|
63
85
|
|
64
86
|
|
65
87
|
|
1
質問の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
###改善の余地があるか知りたいコード
|
1
|
+
###改善の余地があるか知りたいコード(ArticleModelに書いています)
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
```
|
46
46
|
|
47
|
-
|
47
|
+
articleテーブルから特定のカラム(created_at)を指定後、コレクションを配列化してデータを全件取得。
|
48
48
|
|
49
49
|
取得した分だけ繰り返し処理で、日付のフォーマットを変更して空配列に格納後、重複しているデータ(日付)を除外しています。
|
50
50
|
|