回答編集履歴

3

加筆

2021/04/21 01:19

投稿

退会済みユーザー
test CHANGED
@@ -99,3 +99,57 @@
99
99
  本番環境ではsqliteは使わないだろうし。
100
100
 
101
101
  (クエリビルダを使うとしても)データベースごとの固有ノウハウがあるので。
102
+
103
+
104
+
105
+ ---
106
+
107
+
108
+
109
+ PHPを習得したばかりでいきなりLaravelなどのフレームワークに飛びつくと、
110
+
111
+ 今までphpファイル一つでできていたことが
112
+
113
+ 一定のルールに従って役割分担処理分割した上で
114
+
115
+ いろんなファイルを書かなきゃいけなくなります。
116
+
117
+ それはシステム開発における設計とデザインとビジネスロジックの分離だったり、
118
+
119
+ 部品の再利用性再生産性を高めるためだったり、
120
+
121
+ いろんな理由があります。
122
+
123
+
124
+
125
+ LaravelはMVCモデル開発ではないと言われますが、
126
+
127
+ MVCモデルの考え方でビューとコントローラーの役割分担を頭に入れておきたいです。
128
+
129
+
130
+
131
+ - Model --> システムの中でビジネスロジックを担当する
132
+
133
+ - View --> 表示や入出力といった処理をする
134
+
135
+ - Controller --> ユーザーの入力に基づき,ModelとViewを制御する
136
+
137
+
138
+
139
+ ([MVCモデルについて - Qiita](https://qiita.com/s_emoto/items/975cc38a3e0de462966a)から引用)
140
+
141
+
142
+
143
+ 素のPHPは無法地帯というか、ビジネスロジックを記述しつつもHTML出力もできたりして、
144
+
145
+ ごちゃごちゃしやすいですが、
146
+
147
+ コントローラーではリクエストの解釈、データの処理を経て表示のためのデータの集計を行い、
148
+
149
+ ビューでは(コントローラーから)受け取ったデータをテンプレートに従って出力するだけ、
150
+
151
+ という分担を理解して
152
+
153
+ ビューで表示するメニューのためのデータは、コントローラー内で抽出して集計してまとめて渡す、
154
+
155
+ というところをご理解ください。

2

見直し

2021/04/21 01:19

投稿

退会済みユーザー
test CHANGED
@@ -66,6 +66,14 @@
66
66
 
67
67
  テーブル名やカラム名のすり合わせに注意。
68
68
 
69
+ viewの中で表示のためのデータを収集したり加工したりはせず、
70
+
71
+ そういうことはコントローラー側でやるべきことなので、
72
+
73
+ それでコントローラーの方でメニュー表示に必要な情報をテーブルから取得し、
74
+
75
+ 取得した変数をビューに渡しています。
76
+
69
77
 
70
78
 
71
79
  Laravelのプロジェクトを立ち上げる上で、

1

加筆

2021/04/21 00:34

投稿

退会済みユーザー
test CHANGED
@@ -65,3 +65,29 @@
65
65
  みたいなループになるだろうか。
66
66
 
67
67
  テーブル名やカラム名のすり合わせに注意。
68
+
69
+
70
+
71
+ Laravelのプロジェクトを立ち上げる上で、
72
+
73
+ データベースの指定をしたはずで、
74
+
75
+ プロジェクトの .env ファイルに
76
+
77
+
78
+
79
+ DB_CONNECTION=pgsql
80
+
81
+
82
+
83
+ これがmysqlとかsqliteとかになってるはずで。
84
+
85
+ 別途然るべきツールでテーブルを作っておくなりデータ投入しておくなりしないと。
86
+
87
+ へんなデータ管理構造を持ち込むと、かえって作りづらくなるかも。
88
+
89
+ なるべくは覚えたいデータベースを選択してほしい、
90
+
91
+ 本番環境ではsqliteは使わないだろうし。
92
+
93
+ (クエリビルダを使うとしても)データベースごとの固有ノウハウがあるので。