如何获取未分配标签的模型集合 - Laravel
How get a collection of models with no tags assigned - 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 Illuminate\Database\Eloquent\Builder::whereHas() must be an instance of Closure, string given
我也试过执行这个查询
$object = Quotation::has('tags')->get()->random(10);
但我得到了这个:
```
Builder.php 行 2431 中的 BadMethodCallException:
调用未定义的方法 Illuminate\Database\Query\Builder::tags()
```
注 2:在源模型(我从中克隆的模型)中,关系正在计算 hasMany
关系。
要做
请帮助我创建未分配标签的语录集
遇到同样的问题,这样解决了:
$objects = Quotation::all();
$objects = $objects->filter(
function ($object, $key) {
return $object->tags->count() > 0;
}
)->random(10);
希望问题仍然相关:)
我正在使用 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 Illuminate\Database\Eloquent\Builder::whereHas() must be an instance of Closure, string given
我也试过执行这个查询
$object = Quotation::has('tags')->get()->random(10);
但我得到了这个: ``` Builder.php 行 2431 中的 BadMethodCallException: 调用未定义的方法 Illuminate\Database\Query\Builder::tags()
```
注 2:在源模型(我从中克隆的模型)中,关系正在计算 hasMany
关系。
要做
请帮助我创建未分配标签的语录集
遇到同样的问题,这样解决了:
$objects = Quotation::all();
$objects = $objects->filter(
function ($object, $key) {
return $object->tags->count() > 0;
}
)->random(10);
希望问题仍然相关:)