Laravel 按远距离关系 id 查询生成器
Laravel Query Builder by Distant relations id
我有 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 Query Builder 对象
我试过
$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 作为$item)
{{ $item->名称; }}
这会在视图中引发错误,因为传递的对象是一个集合而不是查询返回的结果。
如何将此集合转换为查询生成器结果?
尝试这样的事情
$symbols = Symbol::whereHas('variant', function ($query) use ($language_id) {
$query->where('language_id', $language_id);
})->paginate(10);
return view('index', ['symbols' => $symbols]);
我有 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 Query Builder 对象我试过
$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 作为$item) {{ $item->名称; }}
这会在视图中引发错误,因为传递的对象是一个集合而不是查询返回的结果。
如何将此集合转换为查询生成器结果?
尝试这样的事情
$symbols = Symbol::whereHas('variant', function ($query) use ($language_id) {
$query->where('language_id', $language_id);
})->paginate(10);
return view('index', ['symbols' => $symbols]);