如何获得没有分配标签的模型集合- Laravel



我正在使用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);

希望问题仍然相关

最新更新