2
相當奇怪的錯誤。Laravel foreach在刀片模板過分變量
在我的用戶頁面上,我傳遞用戶數據。
{{ $user->username }}
這將通過正確的用戶名。
但是,如果我做這樣的事情:
{{ $user->username }}
@if ($followers->count())
<h2>Following</h2>
@foreach ($followers as $user)
@include('user/partials/userblock')
@endforeach
@endif
{{ $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在每次迭代中用其他值覆蓋'$ user'變量。 'foreach'沒有它自己的範圍。 –