在Laravel 5.4中为foreach()提供了无效的参数

时间:2019-06-15 08:00:30

标签: php laravel mysqli laravel-5.4

我正在使用laravel 5.4创建一个简单的login模块,该模块运行良好,并且我还设置了session值以获取特定用户的访问权限,这不是我单击{{1 }}按钮将页面重定向到logout页面,这很完美,但是当我直接在浏览器上访问login页面时,它显示了一个错误,即dashboard

如何解决此问题?请帮助我。

dashboard.blade.php

Invalid argument supplied foreach()

Mycontroller.php

<?php
    if(!isset($data))
    {
        header('location:{{url("login")}}');
    }
?>
@foreach($data as $row)
    <h3>Welcome, {{ $row->username }}</h3>
@endforeach
<a href="{{url('logout')}}">Logout</a>

2 个答案:

答案 0 :(得分:0)

尽管使用 isset()函数,仍尝试使用 empty()函数

,还需要检查$ data is_array() is_object()

<?php
if(empty($data))
{
    header('location:{{url("login")}}');
}
?>

@if (is_array($data) || is_object($data))
  @foreach($data as $row)
         <h3>Welcome, {{ $row->username }}</h3>
  @endforeach
@endif

答案 1 :(得分:0)

这是控制器功能中的一个问题,在该功能中,您使用$ user将其定义为如下数组:

$user['data'] = Session::get('user');

并像这样返回它:

return view('user.dashboard',$user);

之后,只需运行您的dashboard.blade.php文件