Задача: есть некая форма, которая подгружается через Ajax в модальном окне. Необходимо производить валидацию формы и в случае успеха перенаправить на нужную страницу.
Приведу два варианта решения поставленной задачи.
Задача: есть некая форма, которая подгружается через Ajax в модальном окне. Необходимо производить валидацию формы и в случае успеха перенаправить на нужную страницу.
Приведу два варианта решения поставленной задачи.
Задача: выводить количество чего-либо во множественном склонении, например “1 статья”, “2 статьи”, “17 статей” и т.д.
Решение #1
$n = 17;
Yii::t('app', '{n, plural, one{У нас # статья} few{У нас # статьи} many{У нас # статей} other{У нас # статьи}}!', ['n' => $n]);
В предыдущей статье я описывал как установить и использовать Sphinx для поиска в Yii2.
Теперь задача: используя Yii2 сделать поисковый запрос к Sphinx, подсветить поисковые слова (snippets, excerpts) и вывести их по 10 на страницу.
$sql = "SELECT id, type_id, SNIPPET(title, :q) as _title, SNIPPET(content, :q) AS _content FROM index WHERE MATCH(:q)";
$rows = Yii::$app->sphinx->createCommand($sql)
->bindValue('q', Yii::$app->sphinx->escapeMatchValue($q))
->queryAll();
Где index
— ваш поисковый индекс.
Задача: проверить существует ли запись с определенным ключом в базе данных.
Для этого используем метод exists()
, который вернет true/false в случае наличия или отсутствия соответствующей записи в таблице:
if (User::find()->where(['id' => 5])->exists()) { // запись существует }
Метод выполнит запрос вида: SELECT 1 FROM `user` WHERE `id` = 5
Необходимо в контроллере вернуться на предыдущую страницу.
Один из подходов
if(Yii::$app->user->returnUrl != '/') return $this->goBack(); else return Yii::$app->request->referrer ? $this->redirect(Yii::$app->request->referrer) : $this->goHome();
Что бы воспользоваться методом goBack()
мы должны установить предварительно значение returnUrl
, т.к оно не устанавливается автоматически (поведение нуждается в сессии и зависит от конкретной ситуации).
Поэтому мы используем значение referrer
для возврата на предыдущую страницу, в случае если returnUrl не содержит установленный адрес. В противном случае нас будет перекидать на главную страницу.