未定义的变量:Laravel中的<variable name =“”>

时间:2018-03-27 07:58:09

标签: php laravel

helpers.php是一个带有函数voteAppeal

的辅助模块
function voteAppeal($appealId) {
  $userLogin = .....//working fine

  $voteAppeal = .....//working fine

  if(Auth::user()->id == $userLogin->id) {
    View::share('voteAppeal', $voteAppeal);
  } else {
    View::share('voteAppeal', '');
  }
}

我正在尝试在noti.blade.php模块中使用它来检查以记录所有收到的投票

  @if($voteAppeal != '')
    @foreach($voteAppeal as $voteAppeal)
      @if($voteAppeal->read == 0)
        someone Voted you.. //working fine for my code
      @endif
    @endforeach
  @endif

但它显示以下错误:

Undefined variable: voteAppeal (View:....\noti.blade.php)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您正在通过帮助程序将变量传递给每个刀片,而应该在服务提供程序的引导方法中进行共享调用。您可以自由地将它们添加到AppServiceProvider或生成一个单独的服务提供程序,这就是它给出错误的原因。

选中此https://laravel.com/docs/5.6/views#passing-data-to-views

并且还完成了foreach循环中的更改 我希望它会对你有所帮助。

答案 1 :(得分:0)

尝试在$voteAppeal as $voteAppeal重命名第二个变量,因为它会覆盖原始变量($voteAppeal):

@if($voteAppeal != '')
    @foreach($voteAppeal as $voteApp)
        @if($voteApp->read == 0)
            someone Voted you..
        @endif
    @endforeach
@endif

第二个问题是您必须使用View Composers将分享附加到视图中!

或者您可以使用AppServiceProvider,在引导方法中,您可以调用方法voteAppeal,然后您将与所有视图共享变量。