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

回答編集履歴

2

回答の追記

2021/08/30 11:39

投稿

kawa_kawawaka
kawa_kawawaka

スコア71

answer CHANGED
@@ -18,4 +18,31 @@
18
18
  ....
19
19
  }
20
20
 
21
- ```
21
+ ```
22
+
23
+
24
+ ## 追記
25
+
26
+ あと記載していただいた内容でしたら、allergyカラム内を配列に整形する処理は、modelに書くのはいかがでしょうか。
27
+
28
+ product.php
29
+ ```
30
+ class Product extends Model
31
+ {
32
+ public function getAllergyArrayAttribute(): array
33
+ {
34
+ return explode(',', $this->allergy);
35
+ }
36
+ }
37
+ ```
38
+
39
+ bladeファイル
40
+ ```
41
+ @foreach($user->products as $pro)
42
+ @foreach($pro->allergy_array as $allergy)
43
+ {{ $allergy }}
44
+ @endforeach
45
+ @endforeach
46
+ ```
47
+
48
+ 上記はLaravelのEloquentのアクセサという機能を使ってのサンプルです。実際の環境や用途に合わせて試してください^^ (markdown使えず汚くすみません)

1

誤字脱字

2021/08/30 11:39

投稿

kawa_kawawaka
kawa_kawawaka

スコア71

answer CHANGED
@@ -1,11 +1,11 @@
1
- `$user->products`で取得できるのProductモデルではなく、Productモデルが格納されたCollectionます。
1
+ `$user->products`で取得できるは、Productモデルではなく、Productモデルが格納されたCollectionなんじゃないかと思います。
2
2
 
3
- 「collectionインスタンスにはallergyというプロパティは存在しません」と言われてしまってます。
3
+ そのため、「collectionインスタンスにはallergyというプロパティは存在しません」と言われてしまってるのではないでしょうか??><
4
4
 
5
5
  `Property [allergy] does not exist on this collection instance.`
6
6
 
7
7
  リレーション部分の記載がないですが、おそらくuserとproductは一対多の関係ですかね?
8
- そうであれば、allergyには例えば以下のようにアクセスできるかと思います
8
+ そうであれば、allergyには例えば以下のようにアクセスできるかと思います^^
9
9
 
10
10
 
11
11