質問編集履歴

3

修正

2020/10/28 07:18

投稿

gomes_2222
gomes_2222

スコア90

test CHANGED
File without changes
test CHANGED
@@ -6,23 +6,25 @@
6
6
 
7
7
  PHPフレームワーク Laravel入門という本を購入して勉強してます。144ページのところでエラーです。
8
8
 
9
+ フォームにバリデーションに引っかかる不適切な情報を入力した場合に、バリデーションの情報を保持しつつindex.blade.phpにページが自動で飛ぶようにしたいです。(エラーメッセージを表示した状態のindex.blade.phpが表示されるようにしたい。)
10
+
9
11
 
10
12
 
11
13
  ### 発生している問題・エラーメッセージ
12
14
 
13
- フォームに、バリデーションに引っかかる不適切な情報を記入してフォームの送信ボタンを押すと、
15
+ フォームに、不適切な情報を記入してフォームの送信ボタンを押すと、
14
-
16
+
15
- エラーメッセージが表示されずに、「このサイトにアクセスできません localhost で接続が拒否されました。」という画面になってしまいます。
17
+ 「このサイトにアクセスできません localhost で接続が拒否されました。」という画面になってしまいます。
16
-
17
- 通常、プログラムのスペルミスなどであれば、それを指摘するエラー画面になるはずなのに、おかしいと思ってます。
18
+
19
+
18
20
 
19
21
 
20
22
 
21
23
  ### 該当のソースコード
22
24
 
23
-
24
-
25
- ```HelloController.php
25
+ HelloController.php
26
+
27
+ ```
26
28
 
27
29
  <?php
28
30
 
@@ -84,9 +86,9 @@
84
86
 
85
87
  ```
86
88
 
87
-
88
-
89
- ```Hellorequests.php
89
+ Hellorequests.php
90
+
91
+ ```
90
92
 
91
93
  <?php
92
94
 
@@ -164,9 +166,9 @@
164
166
 
165
167
  ```
166
168
 
167
-
168
-
169
- ```index.blade.php
169
+ index.blade.php
170
+
171
+ ```
170
172
 
171
173
  @extends('layouts.helloapp')
172
174
 
@@ -244,9 +246,9 @@
244
246
 
245
247
  ```
246
248
 
247
-
248
-
249
- ```web.php
249
+ web.php
250
+
251
+ ```
250
252
 
251
253
  <?php
252
254
 
@@ -258,26 +260,6 @@
258
260
 
259
261
 
260
262
 
261
- /*
262
-
263
- |--------------------------------------------------------------------------
264
-
265
- | Web Routes
266
-
267
- |--------------------------------------------------------------------------
268
-
269
- |
270
-
271
- | Here is where you can register web routes for your application. These
272
-
273
- | routes are loaded by the RouteServiceProvider within a group which
274
-
275
- | contains the "web" middleware group. Now create something great!
276
-
277
- |
278
-
279
- */
280
-
281
263
 
282
264
 
283
265
  Route::get('/', function () {
@@ -310,13 +292,11 @@
310
292
 
311
293
  共に正常に起動していることを確認しました。
312
294
 
313
- また、今回、参考書の通りにcontrollerを修正したところ、エラーとなりました。
314
-
315
295
  なお、バリデーションに引っかからないように入力してフォーム送信すると問題なくページは表示されます。
316
296
 
317
297
  わざとバリデーションに引っかかるように入力すると上記エラーとなり、ページを表示できません。
318
298
 
319
- なので、エラー表示にかかる部分に何か問題があるのかと思ってます。
299
+ なので、return view は問題なく機能しています、return redirect がうまく動作していないかと思ってます。
320
300
 
321
301
 
322
302
 
@@ -326,6 +306,8 @@
326
306
 
327
307
  PHP laravel 8.7.1
328
308
 
309
+
310
+
329
311
  ### 試したこと
330
312
 
331
313
 

2

修正

2020/10/28 07:18

投稿

gomes_2222
gomes_2222

スコア90

test CHANGED
File without changes
test CHANGED
@@ -324,6 +324,8 @@
324
324
 
325
325
  MySQL 5.7
326
326
 
327
+ PHP laravel 8.7.1
328
+
327
329
  ### 試したこと
328
330
 
329
331
 

1

修正

2020/10/28 07:04

投稿

gomes_2222
gomes_2222

スコア90

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- ```php
25
+ ```HelloController.php
26
26
 
27
27
  <?php
28
28
 
@@ -86,6 +86,244 @@
86
86
 
87
87
 
88
88
 
89
+ ```Hellorequests.php
90
+
91
+ <?php
92
+
93
+
94
+
95
+ namespace App\Http\Requests;
96
+
97
+
98
+
99
+ use Illuminate\Foundation\Http\FormRequest;
100
+
101
+
102
+
103
+ class HelloRequest extends FormRequest
104
+
105
+ {
106
+
107
+ public function authorize()
108
+
109
+ {
110
+
111
+ if ($this->path() == 'hello')
112
+
113
+ {
114
+
115
+ return true;
116
+
117
+ } else {
118
+
119
+ return false;
120
+
121
+ }
122
+
123
+ }
124
+
125
+ public function rules()
126
+
127
+ {
128
+
129
+ return [
130
+
131
+ 'name' => 'required',
132
+
133
+ 'mail' => 'email',
134
+
135
+ 'age' => 'numeric|between:0,150',
136
+
137
+ ];
138
+
139
+ }
140
+
141
+ public function messages()
142
+
143
+ {
144
+
145
+ return [
146
+
147
+ 'name.required' => '名前は必ず入力して下さい。',
148
+
149
+ 'mail.email' => 'メールアドレスが必要です。',
150
+
151
+ 'age.numeric' => '年齢を整数で記入下さい。',
152
+
153
+ 'age.between' => '年齢は0 ~ 150の間で入力下さい。',
154
+
155
+ 'age.hello' => 'Hello! 入力は偶数のみ受け付けます。',
156
+
157
+ ];
158
+
159
+ }
160
+
161
+ }
162
+
163
+
164
+
165
+ ```
166
+
167
+
168
+
169
+ ```index.blade.php
170
+
171
+ @extends('layouts.helloapp')
172
+
173
+
174
+
175
+ @section('title', 'Index')
176
+
177
+
178
+
179
+ @section('menubar')
180
+
181
+ @parent
182
+
183
+ インデックスページ
184
+
185
+ @endsection
186
+
187
+
188
+
189
+ @section('content')
190
+
191
+ <p>{{$msg}}</p>
192
+
193
+ @if (count($errors) > 0)
194
+
195
+ <p>入力に問題があります</p>
196
+
197
+ @endif
198
+
199
+ <form action="/hello" method="post">
200
+
201
+ <table>
202
+
203
+ @csrf
204
+
205
+ @error('name')
206
+
207
+ <tr><th>ERROR</th><td>{{$message}}</td></tr>
208
+
209
+ @enderror
210
+
211
+ <tr><th>name: </th><td><input type="text" name="name" value="{{old('name')}}"></td></tr>
212
+
213
+ @error('mail')
214
+
215
+ <tr><th>ERROR</th><td>{{$message}}</td></tr>
216
+
217
+ @enderror
218
+
219
+ <tr><th>mail: </th><td><input type="text" name="mail" value="{{old('mail')}}"></td></tr>
220
+
221
+ @error('age'))
222
+
223
+ <tr><th>ERROR</th><td>{{$message}}</td></tr>
224
+
225
+ @enderror
226
+
227
+ <tr><th>age: </th><td><input type="text" name="age" value="{{old('age')}}"></td></tr>
228
+
229
+ <tr><th></th><td><input type="submit" value="send"></td></tr>
230
+
231
+ </table>
232
+
233
+ </form>
234
+
235
+ @endsection
236
+
237
+ @section('footer')
238
+
239
+ copyright 2020 tuyano.
240
+
241
+ @endsection
242
+
243
+
244
+
245
+ ```
246
+
247
+
248
+
249
+ ```web.php
250
+
251
+ <?php
252
+
253
+
254
+
255
+ use Illuminate\Support\Facades\Route;
256
+
257
+ use App\Http\Middleware\HelloMiddleware;
258
+
259
+
260
+
261
+ /*
262
+
263
+ |--------------------------------------------------------------------------
264
+
265
+ | Web Routes
266
+
267
+ |--------------------------------------------------------------------------
268
+
269
+ |
270
+
271
+ | Here is where you can register web routes for your application. These
272
+
273
+ | routes are loaded by the RouteServiceProvider within a group which
274
+
275
+ | contains the "web" middleware group. Now create something great!
276
+
277
+ |
278
+
279
+ */
280
+
281
+
282
+
283
+ Route::get('/', function () {
284
+
285
+ return view('welcome');
286
+
287
+ });
288
+
289
+
290
+
291
+
292
+
293
+ Route::get('hello','App\Http\Controllers\HelloController@index');
294
+
295
+
296
+
297
+ Route::post('hello','App\Http\Controllers\HelloController@post');
298
+
299
+
300
+
301
+ ```
302
+
303
+ ### 環境
304
+
305
+ MAMPを使っています。
306
+
307
+ apache server
308
+
309
+ MySQL server
310
+
311
+ 共に正常に起動していることを確認しました。
312
+
313
+ また、今回、参考書の通りにcontrollerを修正したところ、エラーとなりました。
314
+
315
+ なお、バリデーションに引っかからないように入力してフォーム送信すると問題なくページは表示されます。
316
+
317
+ わざとバリデーションに引っかかるように入力すると上記エラーとなり、ページを表示できません。
318
+
319
+ なので、エラー表示にかかる部分に何か問題があるのかと思ってます。
320
+
321
+
322
+
323
+ PHP 7.4.1
324
+
325
+ MySQL 5.7
326
+
89
327
  ### 試したこと
90
328
 
91
329