繁体   English   中英

Laravel foreach在刀片模板覆盖变量中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM