belongsToMany和belongsTo

时间:2018-02-07 13:38:15

标签: laravel many-to-many relationship

我在控制器中创建了这个查询:

  $query = tag_performers::with('performers')->where('slug', '=', 'someting')->get();

  return view('frontend.newperformer')->with('hello', $query)
                                      ->with('sectionTitle', 'Performers');

我在Tinker进行了测试,但确实有效。所以我想在我的视图文件中使用它

@foreach($hello->performer as $h)
  {{ $h->performers->id }}
@endforeach

我有错误

  

"此集合实例上不存在属性[执行者]。(...)"

我不知道为什么。谁能帮帮我?

3 个答案:

答案 0 :(得分:0)

使用

@foreach($hello->performer as $h)
   {{ $h->id }}
@endforeach

答案 1 :(得分:0)

我假设查询返回一些数据:

$query = tag_performers::with('performers')->where('slug', '=', 'someting')->get();

根据查询,tag_performers似乎有很多performers,反之亦然,因此您需要进行两次迭代。

  @foreach($hello->performers as $performers)
     @foreach($performers as $performer)
         {{$performer->id}}
     @endforeach
  @endforeach

但帖子的标题是belongs to many and belongs to所以问题是你正在访问关系,然后试图再次访问关系,这不会产生敏感所以它应该是:

  @foreach($hello->performer as $h)
    {{ $h->id }}
  @endforeach

答案 2 :(得分:0)

我认为问题可能是你正在使用的多个变量

表演者与表演者 s

$query = tag_performers::with('performers')->where('slug', '=', 'someting')->get();

  return view('frontend.newperformer')->with('hello', $query)
                                      ->with('sectionTitle', 'Performers');



@foreach($hello->performers as $h) /* <-- notice the s  */
  {{ $h->performers->id }}
@endforeach