Php 为Laravel 5.5中的foreach()提供的参数无效

Php 为Laravel 5.5中的foreach()提供的参数无效,php,laravel,Php,Laravel,我试图从数据库中检索记录,但最终总是在@foreach中得到一个无效的参数错误。我的语法看起来正确,我找不到问题所在。请帮忙 role.blade.php <div class="box-body"> <table id="example1" class="table table-bordered table-striped"> <thead> <tr> <!-- <th><

我试图从数据库中检索记录,但最终总是在@foreach中得到一个无效的参数错误。我的语法看起来正确,我找不到问题所在。请帮忙

role.blade.php

  <div class="box-body">
    <table id="example1" class="table table-bordered table-striped">
      <thead>
      <tr>
        <!-- <th></th> -->
        <th>Name</th>
        <th>Company ID</th>
        <th>Role Type</th>
      </tr>
      </thead>
      <tbody>
      @foreach ($data as $datas)
      <tr>
        <td>{{ $datas->id }}</td>
        <td>{{ $datas->company_name }}</td>
        <td>{{ $datas->role_type }}</td>
      </tr>
      @endforeach
      </tbody>
    </table>
  </div>
</div>
routes.php

Route::get('/roles', 'mainController@roles');
您必须使用
get()
方法从数据库中获取数据。从视图函数中删除单个引号<代码> $DATA/COD>,将数据与单引号传递为字符串而不是数组。< /P>
public function roles(){
    $data = DB::select('select * from roles')->get();
    return view('admin.roles', ['data'=>$data]);
}
您必须使用
get()
方法从数据库中获取数据。从视图函数中删除单个引号<代码> $DATA/COD>,将数据与单引号传递为字符串而不是数组。< /P>
public function roles(){
    $data = DB::select('select * from roles')->get();
    return view('admin.roles', ['data'=>$data]);
}

您正在尝试对字符串进行迭代,因此请更改以下内容:

'data'=>'$data'
致:


您正在尝试对字符串进行迭代,因此请更改以下内容:

'data'=>'$data'
致:


它将给出一个错误,因为
$data
将为空

因此,您需要检查变量是否已设置且不为空

在刀片模板文件中,您需要放入
if
语句,如下所示:

.....
</tr>
      </thead>
      <tbody>
      @if (isset($data) && !empty($data))

        @foreach ($data as $datas)
        <tr>
          <td>{{ $datas->id }}</td>
          <td>{{ $datas->company_name }}</td>
          <td>{{ $datas->role_type }}</td>
        </tr>
        @endforeach

      @endif  
      </tbody>
.....
。。。。。
@if(isset($data)和&!empty($data))
@foreach($data作为$datas)
{{$datas->id}
{{$datas->company_name}
{{$datas->role_type}
@endforeach
@恩迪夫
.....

它将给出一个错误,因为
$data
将为空

因此,您需要检查变量是否已设置且不为空

在刀片模板文件中,您需要放入
if
语句,如下所示:

.....
</tr>
      </thead>
      <tbody>
      @if (isset($data) && !empty($data))

        @foreach ($data as $datas)
        <tr>
          <td>{{ $datas->id }}</td>
          <td>{{ $datas->company_name }}</td>
          <td>{{ $datas->role_type }}</td>
        </tr>
        @endforeach

      @endif  
      </tbody>
.....
。。。。。
@if(isset($data)和&!empty($data))
@foreach($data作为$datas)
{{$datas->id}
{{$datas->company_name}
{{$datas->role_type}
@endforeach
@恩迪夫
.....

在foreach循环之前打印您的
$data
变量@prakashtankally do print\u r($data)如何执行该操作;每当你在循环中卡住并检查它到底在打印什么时,都德:)在每次循环之前打印你的
$data
变量@prakashtankally do print\r($data);当你在循环时卡住并检查它到底打印了什么dude:)你不需要将
get()
添加到原始查询中。你不需要将
get()
添加到原始查询中。谢谢。当我看到这个错误时,我觉得自己像个傻瓜。解决了我的问题。@jptl431别担心,每个人都会遇到的。很高兴有帮助,谢谢。当我看到这个错误时,我觉得自己像个傻瓜。解决了我的问题。@jptl431别担心,每个人都会遇到的。很高兴它有帮助。对于每一个“单数”你都把它当作“复数”?也许倒过来做是一个更好的做法:将每个“复数”作为“单数”。快乐编码…对于每一个“单数”你都把它当作“复数”?也许倒过来做是一个更好的做法:将每个“复数”作为“单数”。快乐编码。。。