我的应用中有用户和文章模型。它们之间的关系很简单:
//article.php
use Taggable;
public function user()
{
return $this->belongsTo('App\User');
}
文章使用Taggable lib,它为我提供了各种方法,例如Article :: withAnyTags(返回标有' xyz'字符串的所有文章)。现在,我想让发布文章的所有用户都标记为' xyz'。我知道如何在两行中做到这一点,但有些事情告诉我这是不对的。理想情况下,我喜欢这样做:
$users = Article::withAnyTags('xyz')->with('user')->select('user'); --pseudocode
有可能在雄辩中这样做吗?
旁注:我知道我可以用DB :: table做到这一点,但这对我来说不是一个选择。请注意,没有" - > get()"在我的伪代码的最后。它就是这样,因为我将用户分页'使用lib设置的结果只适用于雄辩的查询。
答案 0 :(得分:2)
您可以使用whereHas():
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data.on_error=true
或者如果你需要将标签的变量传递给闭包,你可以这样做:
User::whereHas('articles', function ($query) {
$query->withAnyTags('xyz');
})->paginate();
希望这有帮助!