我正在使用rtconner/laravel-tagging包来获得标签功能到我的应用程序。
我可以通过$o->tags->count()
来计数附加标签
我可以通过foreach: @foreach($o->tags as $t)
循环标签。打印附加标签
现在我想得到一个随机的10个引号的集合,没有附加标签。
我可以用给定的属性打印随机的10个片段:
$object = Quotation::where('deepness', null)->get()->random(10);
(注意:我在模型中定义了一个随机范围,与我的问题无关)
…但是,从另一个模型克隆的这段代码不起作用:
$object = Quotation::whereHas('tags','>',0)->get()->random(10);
产生如下错误信息:
FatalThrowableError in Builder.php line 880:
Type error: Argument 2 passed to IlluminateDatabaseEloquentBuilder::whereHas() must be an instance of Closure, string given
我也试过执行这个查询
$object = Quotation::has('tags')->get()->random(10);
但是我得到了这个:' ' 'Builder.php第2431行的BadMethodCallException:调用未定义方法IlluminateDatabaseQueryBuilder::tags()
' ' '注意2:在源模型(我克隆的那个模型)中,关系计数一个hasMany
关系。
,
请帮我创建没有指定标签的语录集
遇到过同样的问题,我是这样解决的:
$objects = Quotation::all();
$objects = $objects->filter(
function ($object, $key) {
return $object->tags->count() > 0;
}
)->random(10);
希望问题仍然相关