Здравствуйте.
Есть форма:
<form action="/search" method="get">
<input type="search" name="q" placeholder="<?= $_GET['q'] ?? 'Запрос' ?>" >
<input type="submit" value="">
</div>
</form>
В модели, которая наследуется от абстрактного класса:
public static function search(array $searchData){
if (empty($searchData['q'])) {
throw new InvalidArgumentException('Запрос');
}
}
Т.е. здесь мы получаем значение так:
$searchData['q']
Контроллер:
public function search(){
try{
$user = Article::search($_GET);
}catch (InvalidArgumentException $e) {
$this->view->renderHtml('search/search.php', ['error' => $e->getMessage()]);
return;
}
$articles = Article::searchArticles('q', $searchData['q']);
$this->view->renderHtml('search/search.php', ['articles' => $articles]
);
}
И теперь абстрактный класс, который наследует модель:
public static function searchArticles(string $value): array{
$db = Db::getInstance();
return $db->query('SELECT * FROM `' . static::getTableName() . '` WHERE `name` LIKE :value', [':value' => $value], static::class);
}
Я не понимаю, как мне подставить значение поля
<input type="search" name="q" placeholder="<?= $_GET['q'] ?? 'Запрос' ?>" >
чтобы оно подставился в запрос к БД.
Т.е. нужно вытащить get запрос из формы и передать его в searchArticles, чтобы был произведено обращение к БД.
Подскажите пожалуйста, как это реализовать.