teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

試したことを追記しました

2021/05/15 21:28

投稿

apprentice123
apprentice123

スコア2

title CHANGED
File without changes
body CHANGED
@@ -224,8 +224,11 @@
224
224
 
225
225
  ### 試したこと
226
226
 
227
- 「'subject[]' => 'required_unless:sum,"0"',」を「'subject[]' => 'required',」に書き換えて試したところ、どのチェックボックスにチェックを入れてもエラーになりました。画面上ではチェックマークがついていてもチェックしたことになっていないように思います。しかし、データベースにはチェックした内容が問題なく登録されています。
227
+ ①フォームリクエストの「'subject[]' => 'required_unless:sum,"0"',」を「'subject[]' => 'required',」に書き換えて試したところ、どのチェックボックスにチェックを入れてもエラーになりました。画面上ではチェックマークがついていてもチェックしたことになっていないように思います。しかし、データベースにはチェックした内容が問題なく登録されています。
228
228
 
229
+ 追記
230
+ ②フォームリクエストの「'subject[]' => 'required_unless:sum,"0"',」を「'subject' => 'required_unless:sum,"0"',」にした場合、学習科目のチェックに対するバリデーションは働きませんでした(学習科目が未入力のときにエラーがでません)
231
+
229
232
  ### 補足情報(FW/ツールのバージョンなど)
230
233
 
231
234
  ここにより詳細な情報を記載してください。

4

レイアウトを修正した

2021/05/15 21:28

投稿

apprentice123
apprentice123

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- ```### 前提・実現したいこと
1
+ ### 前提・実現したいこと
2
2
 
3
3
 
4
4
  Laravel8で学習時間が0分でなければいずれかの学習科目のチェックが必要、というバリデーションを行いたいです。

3

レイアウトを修正した

2021/05/15 07:15

投稿

apprentice123
apprentice123

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,18 @@
1
+ ```### 前提・実現したいこと
2
+
3
+
4
+ Laravel8で学習時間が0分でなければいずれかの学習科目のチェックが必要、というバリデーションを行いたいです。
5
+ しかし、学習時間0分を選択しても以下のエラーがでてしまいます。
6
+ どなたかご教示ください。よろしくお願いします。
7
+
8
+ ### 発生している問題・エラーメッセージ
9
+
10
+ ```
11
+ 学習時間が0以外の場合、科目を指定してください。
12
+ ```
13
+
14
+ ### 該当のソースコード
15
+ ```
1
16
  ```Laravel
2
17
  <?php
3
18
 
@@ -50,20 +65,12 @@
50
65
 
51
66
 
52
67
  }
53
- ```### 前提・実現したいこと
54
68
 
55
69
 
56
- Laravel8で学習時間が0分でなければいずれかの学習科目のチェックが必要、というバリデーションを行いたいです。
57
- しかし、学習時間0分を選択しても以下のエラーがでてしまいます。
58
- どなたかご教示ください。よろしくお願いします。
59
70
 
60
- ### 発生している問題・エラーメッセージ
61
71
 
72
+
62
73
  ```
63
- 学習時間が0以外の場合、科目を指定してください。
64
- ```
65
-
66
- ### 該当のソースコード
67
74
  ```Laravel
68
75
  <!DOCTYPE html>
69
76
  <html lang="ja">

2

コントローラを追加した

2021/05/15 07:14

投稿

apprentice123
apprentice123

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,58 @@
1
- ### 前提・実現したいこと
1
+ ```Laravel
2
+ <?php
2
3
 
4
+ namespace App\Http\Controllers;
3
5
 
6
+ use Illuminate\Http\Request; //RecordRequestを継承
7
+ use App\Http\Requests\RecordRequest; //RecordRequestを継承
8
+ use Illuminate\Support\Facades\DB; //DBを操作する場合に必要
9
+ use App\Http\Controllers\Record;
10
+
11
+ class RecordController extends Controller
12
+ {
13
+
14
+ //
15
+ public function index(){
16
+ $items = DB::select('select * from records');
17
+ $data = ['items'=>$items];
18
+ return view('record.index',$data); //連想配列$itemsのキーを「items」とする['items'=>$items]
19
+ }
20
+
21
+ public function post(){
22
+ $items = DB::select('select * from records');
23
+ $data = ['items'=>$items];
24
+ return view('record.index',$data);
25
+ }
26
+
27
+ public function add(Request $request){
28
+ return view('record.add');
29
+ }
30
+
31
+ public function create(RecordRequest $request){ //フォームの送信内容を受け取るクラスに、RecordRequestが継承されるようにする
32
+ // バリデーション済みデータの取得
33
+ $validated = $request->validated();
34
+
35
+ $str=implode(',',$request->subject); //implodeメソッドで配列を文字列に変換
36
+
37
+ $param=[
38
+ 'date'=>$request->date,
39
+ 'sum'=>$request->sum,
40
+ 'subject'=>$str, //「'subject'というキーを、$requestオブジェクトのsubjectプロパティに割り当てる」ということ?
41
+ 'created_at'=>$request->created_at,
42
+ ];
43
+ // DB::insert('insert into records (date, sum, subject, created_at) values(:date, :sum, :subject, :timestamps)', $param);
44
+ DB::table('records')->insert($param);
45
+ return redirect('http://localhost:8000/record');
46
+ }
47
+
48
+
49
+
50
+
51
+
52
+ }
53
+ ```### 前提・実現したいこと
54
+
55
+
4
56
  Laravel8で学習時間が0分でなければいずれかの学習科目のチェックが必要、というバリデーションを行いたいです。
5
57
  しかし、学習時間0分を選択しても以下のエラーがでてしまいます。
6
58
  どなたかご教示ください。よろしくお願いします。

1

言語名を足した

2021/05/15 07:09

投稿

apprentice123
apprentice123

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ここに質問の内容を詳しく書いてください。
3
+
4
4
  Laravel8で学習時間が0分でなければいずれかの学習科目のチェックが必要、というバリデーションを行いたいです。
5
5
  しかし、学習時間0分を選択しても以下のエラーがでてしまいます。
6
6
  どなたかご教示ください。よろしくお願いします。
@@ -12,7 +12,7 @@
12
12
  ```
13
13
 
14
14
  ### 該当のソースコード
15
- ```PHP Laravel
15
+ ```Laravel
16
16
  <!DOCTYPE html>
17
17
  <html lang="ja">
18
18
  <head>
@@ -115,7 +115,7 @@
115
115
 
116
116
  </html>
117
117
  ```
118
- ```PHP Laravel
118
+ ```Laravel
119
119
  <?php
120
120
 
121
121
  namespace App\Http\Requests;