質問編集履歴
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,15 +2,16 @@
|
|
2
2
|
|
3
3
|
phplaravelの勉強中です。
|
4
4
|
PHPフレームワーク Laravel入門という本を購入して勉強してます。144ページのところでエラーです。
|
5
|
+
フォームにバリデーションに引っかかる不適切な情報を入力した場合に、バリデーションの情報を保持しつつindex.blade.phpにページが自動で飛ぶようにしたいです。(エラーメッセージを表示した状態のindex.blade.phpが表示されるようにしたい。)
|
5
6
|
|
6
7
|
### 発生している問題・エラーメッセージ
|
7
|
-
フォームに、
|
8
|
+
フォームに、不適切な情報を記入してフォームの送信ボタンを押すと、
|
8
|
-
|
9
|
+
「このサイトにアクセスできません localhost で接続が拒否されました。」という画面になってしまいます。
|
9
|
-
通常、プログラムのスペルミスなどであれば、それを指摘するエラー画面になるはずなのに、おかしいと思ってます。
|
10
10
|
|
11
|
+
|
11
12
|
### 該当のソースコード
|
12
|
-
|
13
|
-
|
13
|
+
HelloController.php
|
14
|
+
```
|
14
15
|
<?php
|
15
16
|
|
16
17
|
namespace App\Http\Controllers;
|
@@ -41,8 +42,8 @@
|
|
41
42
|
}
|
42
43
|
}
|
43
44
|
```
|
44
|
-
|
45
|
-
|
45
|
+
Hellorequests.php
|
46
|
+
```
|
46
47
|
<?php
|
47
48
|
|
48
49
|
namespace App\Http\Requests;
|
@@ -81,8 +82,8 @@
|
|
81
82
|
}
|
82
83
|
|
83
84
|
```
|
84
|
-
|
85
|
-
|
85
|
+
index.blade.php
|
86
|
+
```
|
86
87
|
@extends('layouts.helloapp')
|
87
88
|
|
88
89
|
@section('title', 'Index')
|
@@ -121,23 +122,13 @@
|
|
121
122
|
@endsection
|
122
123
|
|
123
124
|
```
|
124
|
-
|
125
|
-
|
125
|
+
web.php
|
126
|
+
```
|
126
127
|
<?php
|
127
128
|
|
128
129
|
use Illuminate\Support\Facades\Route;
|
129
130
|
use App\Http\Middleware\HelloMiddleware;
|
130
131
|
|
131
|
-
/*
|
132
|
-
|--------------------------------------------------------------------------
|
133
|
-
| Web Routes
|
134
|
-
|--------------------------------------------------------------------------
|
135
|
-
|
|
136
|
-
| Here is where you can register web routes for your application. These
|
137
|
-
| routes are loaded by the RouteServiceProvider within a group which
|
138
|
-
| contains the "web" middleware group. Now create something great!
|
139
|
-
|
|
140
|
-
*/
|
141
132
|
|
142
133
|
Route::get('/', function () {
|
143
134
|
return view('welcome');
|
@@ -154,14 +145,14 @@
|
|
154
145
|
apache server
|
155
146
|
MySQL server
|
156
147
|
共に正常に起動していることを確認しました。
|
157
|
-
また、今回、参考書の通りにcontrollerを修正したところ、エラーとなりました。
|
158
148
|
なお、バリデーションに引っかからないように入力してフォーム送信すると問題なくページは表示されます。
|
159
149
|
わざとバリデーションに引っかかるように入力すると上記エラーとなり、ページを表示できません。
|
160
|
-
なので、
|
150
|
+
なので、return view は問題なく機能していますが、return redirect がうまく動作していないかと思っています。
|
161
151
|
|
162
152
|
PHP 7.4.1
|
163
153
|
MySQL 5.7
|
164
154
|
PHP laravel 8.7.1
|
155
|
+
|
165
156
|
### 試したこと
|
166
157
|
|
167
158
|
インターネット接続については、問題なくできていることは確認しました。
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -161,6 +161,7 @@
|
|
161
161
|
|
162
162
|
PHP 7.4.1
|
163
163
|
MySQL 5.7
|
164
|
+
PHP laravel 8.7.1
|
164
165
|
### 試したこと
|
165
166
|
|
166
167
|
インターネット接続については、問題なくできていることは確認しました。
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
### 該当のソースコード
|
12
12
|
|
13
|
-
```php
|
13
|
+
```HelloController.php
|
14
14
|
<?php
|
15
15
|
|
16
16
|
namespace App\Http\Controllers;
|
@@ -42,6 +42,125 @@
|
|
42
42
|
}
|
43
43
|
```
|
44
44
|
|
45
|
+
```Hellorequests.php
|
46
|
+
<?php
|
47
|
+
|
48
|
+
namespace App\Http\Requests;
|
49
|
+
|
50
|
+
use Illuminate\Foundation\Http\FormRequest;
|
51
|
+
|
52
|
+
class HelloRequest extends FormRequest
|
53
|
+
{
|
54
|
+
public function authorize()
|
55
|
+
{
|
56
|
+
if ($this->path() == 'hello')
|
57
|
+
{
|
58
|
+
return true;
|
59
|
+
} else {
|
60
|
+
return false;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
public function rules()
|
64
|
+
{
|
65
|
+
return [
|
66
|
+
'name' => 'required',
|
67
|
+
'mail' => 'email',
|
68
|
+
'age' => 'numeric|between:0,150',
|
69
|
+
];
|
70
|
+
}
|
71
|
+
public function messages()
|
72
|
+
{
|
73
|
+
return [
|
74
|
+
'name.required' => '名前は必ず入力して下さい。',
|
75
|
+
'mail.email' => 'メールアドレスが必要です。',
|
76
|
+
'age.numeric' => '年齢を整数で記入下さい。',
|
77
|
+
'age.between' => '年齢は0 ~ 150の間で入力下さい。',
|
78
|
+
'age.hello' => 'Hello! 入力は偶数のみ受け付けます。',
|
79
|
+
];
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
```index.blade.php
|
86
|
+
@extends('layouts.helloapp')
|
87
|
+
|
88
|
+
@section('title', 'Index')
|
89
|
+
|
90
|
+
@section('menubar')
|
91
|
+
@parent
|
92
|
+
インデックスページ
|
93
|
+
@endsection
|
94
|
+
|
95
|
+
@section('content')
|
96
|
+
<p>{{$msg}}</p>
|
97
|
+
@if (count($errors) > 0)
|
98
|
+
<p>入力に問題があります</p>
|
99
|
+
@endif
|
100
|
+
<form action="/hello" method="post">
|
101
|
+
<table>
|
102
|
+
@csrf
|
103
|
+
@error('name')
|
104
|
+
<tr><th>ERROR</th><td>{{$message}}</td></tr>
|
105
|
+
@enderror
|
106
|
+
<tr><th>name: </th><td><input type="text" name="name" value="{{old('name')}}"></td></tr>
|
107
|
+
@error('mail')
|
108
|
+
<tr><th>ERROR</th><td>{{$message}}</td></tr>
|
109
|
+
@enderror
|
110
|
+
<tr><th>mail: </th><td><input type="text" name="mail" value="{{old('mail')}}"></td></tr>
|
111
|
+
@error('age'))
|
112
|
+
<tr><th>ERROR</th><td>{{$message}}</td></tr>
|
113
|
+
@enderror
|
114
|
+
<tr><th>age: </th><td><input type="text" name="age" value="{{old('age')}}"></td></tr>
|
115
|
+
<tr><th></th><td><input type="submit" value="send"></td></tr>
|
116
|
+
</table>
|
117
|
+
</form>
|
118
|
+
@endsection
|
119
|
+
@section('footer')
|
120
|
+
copyright 2020 tuyano.
|
121
|
+
@endsection
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
```web.php
|
126
|
+
<?php
|
127
|
+
|
128
|
+
use Illuminate\Support\Facades\Route;
|
129
|
+
use App\Http\Middleware\HelloMiddleware;
|
130
|
+
|
131
|
+
/*
|
132
|
+
|--------------------------------------------------------------------------
|
133
|
+
| Web Routes
|
134
|
+
|--------------------------------------------------------------------------
|
135
|
+
|
|
136
|
+
| Here is where you can register web routes for your application. These
|
137
|
+
| routes are loaded by the RouteServiceProvider within a group which
|
138
|
+
| contains the "web" middleware group. Now create something great!
|
139
|
+
|
|
140
|
+
*/
|
141
|
+
|
142
|
+
Route::get('/', function () {
|
143
|
+
return view('welcome');
|
144
|
+
});
|
145
|
+
|
146
|
+
|
147
|
+
Route::get('hello','App\Http\Controllers\HelloController@index');
|
148
|
+
|
149
|
+
Route::post('hello','App\Http\Controllers\HelloController@post');
|
150
|
+
|
151
|
+
```
|
152
|
+
### 環境
|
153
|
+
MAMPを使っています。
|
154
|
+
apache server
|
155
|
+
MySQL server
|
156
|
+
共に正常に起動していることを確認しました。
|
157
|
+
また、今回、参考書の通りにcontrollerを修正したところ、エラーとなりました。
|
158
|
+
なお、バリデーションに引っかからないように入力してフォーム送信すると問題なくページは表示されます。
|
159
|
+
わざとバリデーションに引っかかるように入力すると上記エラーとなり、ページを表示できません。
|
160
|
+
なので、エラー表示にかかる部分に何か問題があるのかと思ってます。
|
161
|
+
|
162
|
+
PHP 7.4.1
|
163
|
+
MySQL 5.7
|
45
164
|
### 試したこと
|
46
165
|
|
47
166
|
インターネット接続については、問題なくできていることは確認しました。
|