PHP MVC: поиск по заголовкам
товарищи
Не получается организовать поиск по заголовкам постов. Вот код модели:
public function postSearch($posts) : array
{
$sql = "SELECT id, title, content, dateAdded, dateModified FROM posts WHERE title LIKE :termin";
$req = $this->db->prepare($sql);
$req->execute();
return $req->fetchAll(\PDO::FETCH_CLASS, Post::class);
}
Вот код контроллера:
public function search(HTTPRequest $req): void
{
$termin = $_POST['termin'];
$posts = $this->postManager->postSearch([
'termin' => "%$termin%"
]);
$this->show('../App/View/search.php', compact('termin', 'posts'));
}
Т. е. нужно чтобы после ввода в форму заголовка, выводилась превьюха статьи (это уже в виде). Массив $posts — пустой. Если в запросе вместо маски %termin% указывать конкретный заголовок, то всё выводится. Выходит, контроллер не понимает маску?
Ответы (1 шт):
Автор решения: u_mulder
→ Ссылка
public function postSearch($termin) : array
{
$sql = "SELECT id, title, content, dateAdded, dateModified FROM posts WHERE title LIKE :termin";
$req = $this->db->prepare($sql);
$req->execute(['termin' => $termin]);
return $req->fetchAll(\PDO::FETCH_CLASS, Post::class);
}
Так как в контроллере в postSearch передается массив, то тогда правильней так:
public function postSearch($termin) : array
{
$sql = "SELECT id, title, content, dateAdded, dateModified FROM posts WHERE title LIKE :termin";
$req = $this->db->prepare($sql);
$req->execute($termin);
return $req->fetchAll(\PDO::FETCH_CLASS, Post::class);
}