Я уже давно борюсь с этим. Я использую PyroCMS, и у него есть модуль Posts
, который имеет все поля в базе данных и все такое, и если вы хотите найти конкретное сообщение, вы можете просто использовать обычное предложение WHERE
и найти сообщение по дате и скоро.
Но если поле отмечено в CMS как переводимое, я не могу получить доступ к этому полю и использовать его для поиска сообщения, потому что CMS создает другое поле в другой таблице, которое называется posts_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
может быть, мне нужно использовать какой-то другой класс для доступа к тому, что я хочу? Я в замешательстве, я знаю, что это основа для ловли, но я не могу обернуться вокруг этой простой проблемы.