[英]Laravel foreach in blade template overiding variables
相当奇怪的错误。
在我的用户页面上,我传递用户数据。
{{ $user->username }}
这将通过正确的用户名。
但是,如果我做这样的事情:
{{ $user->username }}
@if ($followers->count())
<h2>Following</h2>
@foreach ($followers as $user)
@include('user/partials/userblock')
@endforeach
@endif
{{ $user->username }}
第一个$ user-> username将正确输出,但最后一个实际上将返回在foreach中循环的最后一个用户!
为什么会这样呢?
对于那些想知道的人,这里是用户控制器:
public function getUser($username) {
$user = User::where('username', $username)->first();
if (!$user) {
return redirect()->route('home')->with('info', 'User not found.' );
}
$followers = $user->followers();
return view('user.index')
->with('user', $user)
->with('followers', $followers);
}
只需使用另一个变量:
@foreach ($followers as $follower)
@include('user/partials/userblock', ['user' => $follower])
您可以使用另一个变量,如下所示:
public function getUser($username) {
$cuser = User::where('username', $username)->first();
if (!$cuser) {
return redirect()->route('home')->with('info', 'User not found.' );
}
$followers = $cuser->followers();
return view('user.index')
->with('cuser', $cuser)
->with('followers', $followers);
}
而你刀片:
{{ $cuser->username }}
@if ($followers->count())
<h2>Following</h2>
@foreach ($followers as $user)
@include('user/partials/userblock')
@endforeach
@endif
{{ $cuser->username }}
希望这有效!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.