Laravelのcontroller内でforeachを回して、bladeにhtmlタグを出し分けたいのですが、
1番目のデータしか処理がされず、下記の例だと全て「<span>b</span>」になってしまいます。
色々調べたのですが、何が原因なのか一人では解決できず、
初歩的な質問で恐縮ですが、こちらに投稿させていただきました。
どなたかご教授いただけますでしょうか?
----追記----
やりたいこととしては、
user配列に入っているidが100以上なら"<span>a</span>"を、100未満なら"<span>b</span>"をbladeに埋め込みたいです。
controller
1public function index(Request $request) 2 { 3 $user = $this->user_service->searchUser(); 4 $id = array_column($user, 'id'); 5 //array:3 [▼ 6 0 => "99" 7 1 => "100" 8 2 => "101" 9 ] 10 $label = []; 11 foreach($id as $key=>$val) { 12 if($val > 100) 13 { $label = "<span>a</span>"; } 14 else if($val <= 100) 15 { $label = "<span>b</span>"; } 16 } 17 18 return view('user.index')->with([ 19 'user' => $user, 20 'label' => $label, 21 ]); 22 }
blade
1@foreach($users as $user) 2 <table> 3 <tbody> 4 <tr> 5 <td>{!! $label !!}</td> 6 </tr> 7 </tbody> 8 </table> 9@endforeach
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/10 07:36
2021/06/10 08:10
2021/06/10 08:12
2021/06/10 08:39