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() }}">