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

回答編集履歴

1

キャストについて追記しました

2018/09/26 06:31

投稿

mikan_s4n
mikan_s4n

スコア377

answer CHANGED
@@ -4,4 +4,24 @@
4
4
  lalavelの仕様はよくわかってはいないのですが、@emptyというのは恐らく空であればという条件だと思うのでnull対策になっているのでしょうね。
5
5
 
6
6
  ということで考えられるのは $post->comments が、そもそも配列としてわたってきていないのでは?というところになります。
7
- $post->comments を強制的に配列にキャストすればもしかしたらうまくいくかもしれません。
7
+ $post->comments を強制的に配列にキャストすればもしかしたらうまくいくかもしれません。
8
+
9
+ // 追記 2018/09/26 15:16
10
+ 強制的にキャストする方法ですが、以下のように(array)$arrayの形で出来たかと思います。
11
+ 方法①のようにlalabelのBladeでこれがそのまま使えるかは不明ですが、PHPの標準機能のはずなのでおそらくは使えるはず。
12
+ もしダメでも方法②のように直前で強制キャストを行い、@forelseに渡すものを配列にすれば行くはずです。
13
+
14
+ ```php
15
+ // 一般的なphpでの強制キャスト
16
+ foreach ((array)$array as $elem) {
17
+   // hogehoge.
18
+ }
19
+
20
+ // lalabel-Blade用 方法①
21
+ @forelse ((array)$post->comments as $comment)
22
+
23
+ // lalabel-Blade用 方法②
24
+ $arrComments = (array)$post->comments
25
+ @forelse ($arrComments as $comment)
26
+
27
+ ```