Php 如何从外部视图获取Laravel blade@foreach循环中的变量

Php 如何从外部视图获取Laravel blade@foreach循环中的变量,php,laravel,foreach,laravel-blade,Php,Laravel,Foreach,Laravel Blade,我有blade视图和@foreach循环。在这个blade视图中,我还传递了UserController中的$user变量。在@foreach内部,我有{{{$user->getAvatar()}} @extends('layouts.app') @section('content') @foreach($threads as $thread) <div class="media alert {{ $class }}"> <img src="{{ $

我有
blade
视图和
@foreach
循环。在这个
blade
视图中,我还传递了UserController中的
$user
变量。在
@foreach
内部,我有
{{{$user->getAvatar()}}

@extends('layouts.app')

@section('content')

@foreach($threads as $thread)
    <div class="media alert {{ $class }}">
        <img src="{{ $user->getAvatar() }}">
        <div class="media-body">
            <p>
            {{ $thread->latestMessage->body }}
            </p>
        </div>    
    </div>
@endforeach

@endsection
我有错误
未定义变量:user
<代码>foreach循环从视图的其他部分看不到变量

ErrorException (E_ERROR)
Undefined variable: user (View:messenger\partials\thread.blade.php) (View: messenger\partials\thread.blade.php)
Previous exceptions
Undefined variable: user (View: messenger\partials\thread.blade.php) (0)
Undefined variable: user (0)

您需要检查变量是否有值,如果laravel无法获取
$user->getAvatar()
的值,它肯定会返回错误 所以就试着跟着做吧

@isset($user->getAvatar())

@endisset
试试这个:

@foreach($threads as $thread)
    <div class="media alert {{ $class }}">
        <img src="{{ isset($user) ? $user->getAvatar : '' }}">
        <div class="media-body">
            <p>
            {{ $thread->latestMessage->body }}
            </p>
        </div>    
    </div>
@endforeach
@foreach($threads作为$thread)
getAvatar:“}}”>

{{$thread->latestMessage->body}

@endforeach
尝试在foreach循环上面定义它

@extends('layouts.app')

@section('content')
<?php 
   $user_avatar = $user->getAvatar();
?>
@foreach($threads as $thread)
<div class="media alert {{ $class }}">
    <img src="{{ $user_avatar }}">
    <div class="media-body">
        <p>
        {{ $thread->latestMessage->body }}
        </p>
    </div>    
</div>
@endforeach

@endsection
@extends('layouts.app'))
@节(“内容”)
@foreach($threads作为$thread)

{{$thread->latestMessage->body}

@endforeach @端部

希望有帮助!

对于您的情况,请在返回时使用此代码

return View::make('messenger.index')

->with(compact('threads'))

->with(compact('user'));

您可以使用任意时间。这将有望解决您的问题。

为什么不使用
auth()
帮助函数

<img src="{{ auth()->user()->getAvatar() }}">
user()->getAvatar()}>

这样,您就不需要通过控制器传递它。

请添加完整的错误消息,您正在调用视图
messenger.index
,但错误来自
messenger\partials\thread.blade.php
。您是否向我们显示了所有相关的视图代码?你们是在某处调用一个分部函数而不把那个变量传递给它吗?问题很简单
@foreach
循环从外部看不到变量。@SergeyS。共享完整的相关代码,当然这里缺少一些有价值的东西。若我在刀片模板中添加
{{dd($user)}}
,我会看到这个对象。但是在
@foreach循环中
,这个变量是
未定义的
。未定义的变量:user\u avatar。
<img src="{{ auth()->user()->getAvatar() }}">