IwanQ
@IwanQ
Плохие времена часто дают прекрасные возможности

Как получить данные из формы для подстановки в запрос?

Здравствуйте.

Есть форма:
<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, чтобы был произведено обращение к БД.

Подскажите пожалуйста, как это реализовать.
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
В контроллере
$articles = Article::searchArticles($_GET['q']);

ты правда настолько не понимаешь те буковки, которые тут старательно выводишь?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы