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

質問編集履歴

1

伝わりやすいように内容を変更

2021/04/09 01:19

投稿

kz.engineer
kz.engineer

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- 【PHP,Laravel】検索画面チェック付けたチェックボックスチェック状態保持したい。
1
+ 【PHP,Laravel】bladeの@foreach内@if文書くときに{{ $hobby->id }}ように値したい。
body CHANGED
@@ -9,10 +9,8 @@
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
11
  ```
12
- blade2つ上選択した際に、$hobby->idが一番大きいチェックボックスのみチェック状態保持されてっています。
12
+ 表題の通り、検索画面チェックしたチェックボックスの状態保持するために、bladeの@foreach内で@if文を書くときに{{ $hobby->id }}のように値を渡たいのですが、{{ $hobby->id }}だと「該当のソースコード」のエラーになってしまいます。
13
13
 
14
- 1つのみ選択した際にチェック状態が保持されない&2つ以上選択した際にチェックを付けたすべてのチェックボックスのチェック状態を保持することができていない状態です。
15
-
16
14
  ```
17
15
 
18
16
  ### 該当のソースコード
@@ -32,18 +30,15 @@
32
30
  'name' => ['ゲーム', '映画', 'スポーツ'・・・]
33
31
  ];
34
32
  -->
33
+
35
34
  <!-- Blade -->
36
35
  <div>
37
36
  @foreach($hobbies as $hobby)
38
- <input id="hobbies{{ $hobby->id }}" type="checkbox" value="{{ $hobby->id }}" name="$hobby[]" @if(isset($searchCondition['hobbies']) && array_search($hobby['id'], $searchCondition['hobbies'])) checked @endif/>
37
+ <input id="hobbies{{ $hobby->id }}" type="checkbox" value="{{ $hobby->id }}" name="hobby[]" @if(isset($searchCondition['hobbies']) && array_search({{ $hobby->id }}, $searchCondition['hobbies'])) checked @endif/>
39
38
  <label class="search-checkbox" for="hobbies{{ $hobby->id }}">{{ $hobby->name }}</label>
40
39
  @endforeach
41
40
  <div>
42
41
 
43
- ```
44
-
45
- ### 試したこと
46
- ★array_search($hobby['id'], $searchCondition['hobbies']))の$hobby['id']を{{ $hobby->id }}にする。
47
42
  ⇒以下のエラーになってしまう。
48
43
 
49
44
  Symfony\Component\Debug\Exception\FatalThrowableError
@@ -51,7 +46,24 @@
51
46
 
52
47
  おそらく、@if @endifの中は通常のphpのコードで書く必要があり、{{ $hobby->id }}の「>」が反応してくれない模様。
53
48
 
49
+ ```
54
50
 
51
+ ### 試したこと
52
+ ★array_search({{ $hobby->id }}, $searchCondition['hobbies']))の{{ $hobby->id }}を$hobby['id']にする。
53
+ <!-- Blade -->
54
+ <div>
55
+ @foreach($hobbies as $hobby)
56
+ <input id="hobbies{{ $hobby->id }}" type="checkbox" value="{{ $hobby->id }}" name="hobby[]" @if(isset($searchCondition['hobbies']) && array_search($hobby['id'], $searchCondition['hobbies'])) checked @endif/>
57
+ <label class="search-checkbox" for="hobbies{{ $hobby->id }}">{{ $hobby->name }}</label>
58
+ @endforeach
59
+ <div>
60
+
61
+ ⇒bladeで2つ上選択した際に、$hobby->idが一番大きいチェックボックスのみチェック状態が保持されてしまう。
62
+
63
+ 1つのみ選択した際にチェック状態が保持されない&2つ以上選択した際にチェックを付けたすべてのチェックボックスのチェック状態を保持することができていない状態です。
64
+
65
+
66
+
55
67
  ### 補足情報(FW/ツールのバージョンなど)
56
68
 
57
69
  【バージョン】