我已经挣扎了很长一段时间了。我用pyrocms,它有一个 Posts
包含数据库中所有字段的模块,如果您想查找特定的文章,可以使用普通的 WHERE
从句和按日期找到一个职位等等。
但是如果一个字段在cms中被检查为可翻译的,我就不能访问这个字段并用它来查找post,因为cms在另一个表中创建了另一个字段,称为posts\u translations,它包含了所有可翻译的字段。通常这是一个简单的问题 $posts->where("field","value")
,但如果该字段是可翻译的,则该字段不存在。
所以我试着用 whereHas
,但它并没有真正返回任何东西。
public function meklet(PostRepositoryInterface $posts, $q)
{
$postss = $posts->all()->whereHas('translations', function($query) use($q) {
$query = $query->where(function($query) use($q) {
$query->where('title', 'like', '%'.$q.'%');
});
});
die(var_dump($q));
return $this->view->make("mendo.module.report::reports/search");
}
如你所见,我用 PostRepositoryInterface
也许我需要使用其他类来访问我想要的东西?我很困惑,我知道这是一个拉维基地,但我真的不能围绕这个简单的问题我的头。
1条答案
按热度按时间niknxzdl1#
您不应该在那里使用一个字母的变量和太多的嵌套函数:
路线应该是这样的:
要直接使用db查询,您需要自己编写翻译。这并不难。