redirect
Метод позволяет сделать так, чтобы при нажатии на одну кнопку выполнялось действие, определенное для другой кнопки или маршрута. Это очень удобно для создания сложных меню и навигации, например, для кнопок "Назад" или для вызова общего действия из разных мест.
Action::redirect
Метод принадлежит классу Action и никак не связан с одноименным методом класса Bot.
Параметры
| # | Название | Тип | Описание |
|---|---|---|---|
| 1 | id | string | Уникальный id маршрута, на который нужно перенаправить (btn, onCommand, и т.д.). |
Возвращает
Action — экземпляр класса Action (Вспомогательный класс), на который можно навешивать дальнейшие действия (text, func и т.д.).
Пример использования
Создадим простое двухуровневое меню с кнопкой "Назад".
php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Bot;
$tg = ZG::create(BOT_TOKEN);
$bot = new Bot($tg);
// 1. Действие, на которое будем ссылаться, - главное меню.
$bot->btn('main_menu', '🏠 Главное меню')
->text('Вы находитесь в главном меню.')
->inlineKbd([['catalog', 'contacts']]);
// 2. Действие, которое будет содержать кнопку "Назад".
$bot->btn('catalog', '🛍️ Каталог товаров')
->text('Наш каталог: Товар 1, Товар 2...')
->inlineKbd([
['back_to_main'] // Кнопка "Назад"
]);
$bot->btn('contacts', '📞 Контакты')->text('Наш телефон: ...');
// 3. Создаем кнопку "Назад" и настраиваем редирект на 'main_menu'.
$bot->btn('back_to_main', '⬅️ Назад')
->redirect('main_menu');
// 4. По команде /start сразу перенаправляем на главное меню.
$bot->onBotCommand('start', '/start')->redirect('main_menu');
$bot->run();