【发布时间】:2018-02-08 17:34:10
【问题描述】:
我有 3 个模型
Language: id,name. Table: languages.|
Variant:id,name, language_id. Table:variants.|
Symbol: id, name, variant_id. Table :symbols.
Relations:
Language->hasMany->Variant.|
Variant->hasMany->Symbol.|
Language->hasManyThrough->(Symbol,Variant)
我想通过 language_id 找到属于一种语言的所有符号,并从控制器传递一个 $symbols 查询生成器对象分页到我的视图
我尝试了类似的东西
$variants=Variant::with('symbol')->where('language_id',"=",$language_id)->get();
$symbols= collect(new Symbol);
foreach($variants as $variant){
$symbols->push($variant->symbol()->paginate(10));
}
return view(symbols.index,compact($symbols))
在视图中,我只是在 foreach 中回显查询的项目 @foreach($symbols as $item) {{ $item->name; }}
这会在视图中引发错误,因为传递的对象是一个集合而不是 Query 返回的结果。
如何将此集合转换为查询生成器结果?
【问题讨论】:
-
只是不要调用
->get(),这会给你构建器实例。 -
删除 get() 会在视图中引发错误
Method appends does not exist.我只是在此处回显变量。还有其他方法可以实现吗?新的集合和 foreach 会创建一个同样不能分页的集合对象。 -
你能把代码贴在你的视图里吗?
-
` @foreach($symbols as $item) {{$item->name}} ` .我只是在 foreach 的视图中呼应它们。
-
我认为我发布的查询应该可以解决问题@user1099253
标签: laravel eloquent views relationships laravel-paginate