質問編集履歴
1
伝わりやすいように内容を変更
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
|
-
|
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="
|
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
|
【バージョン】
|