为foreach()提供的参数无效

时间:2017-04-08 05:27:12

标签: php laravel foreach laravel-5.3

新手在这里。我一直在Laravel 5.4中建立一对多的关系。我正在努力阅读用户和国家之间的关系。我一直收到这个错误。我在表格中有数据。以下是观点:

@foreach ($user->states as $note)

  <li>{{ $note->name }}</li>

@endforeach

以下是用户模型:

class User extends Model
{

    use SoftDeletes;

    public function state(){

      return $this->belongsTo(State::class);

    }

    public function role(){

      return $this->belongsTo(Role::class);

    }

    public function district(){

      return $this->belongsTo(District::class);

    }

以下是州模式:

class State extends Model
{
    protected $fillable = [
      'name'
    ];

    public function users(){

      return $this->hasMany(User::class);
    }
}

2 个答案:

答案 0 :(得分:0)

在应用foreach循环之前检查数组或对象计数。在不检查数组计数的情况下使用循环确实是一种不好的做法。

@if(isset($user->states) && count($user->states) > 0)
  @foreach ($user->states as $state)
     <li>{{ $state->name }}</li>
   @endforeach
@else
   No Records Found 
@endif

答案 1 :(得分:0)

检查获取结果不是空白$results != FALSE您可以以laravel方式转换此代码段

<?php
    if($user->states != FALSE){
        foreach ($user->states as $note){
            echo '<li>'.$note->name.'</li>';
        }
    }else{
        echo 'No Results Found!';
    }
?>