Не совсем ясно что конкретно вам нужно получить, но Slick генерирует события, обрабатывая которые на JavaScript можно что-то делать. Например, вешаете на событие afterChange свой обработчик и при каждой смене слайда меняете содержание нижнего блока.
По моему, надо над структурой БД подумать. С вашей задачей я не сталкивался, но первое что приходит в голову (как уже выше сказали) NestedSets - это позволит делать быстрые выборки любой части дерева.
На мой взгляд, если у вас при этом меняется структура БД, то можно совместить с миграцией. Если же просто данные переносятся, то делайте консольную команду.
Proconsool, При запросе к ЮКассе вы можете в объекте платежа передать любые метаданные (все нужные вам id). Эти метаданные будут присутствовать во всех ответах сервиса.
Периодически использую в Yii расширение Zelenin\yii\behaviors\Slug для генерации slug, но никогда не заглядывал "под капот" как оно там работает. Сейчас заглянул - автор в цикле добавляет к сгенерированному slug число и проверяет нет ли такой записи в таблице.
Довольно странная архитектура приложения. Для учебных целей конечно пойдёт, но в реальных условиях обычно sql с клиента на сервер не гоняют, а делают серверное API, обеспечивающие необходимые операции.
На всякий случай замечу, что если вы для работы со Unicode-строками (т.е. обычно кириллица в utf-8) пользуетесь функциями str_* и иже с ними, то результат будет некорректный. Надо использовать специальные функци для мультибайтовых строк mb_*
Как вариант, можно подсмотреть в С#. Там реализованы пары методов для классов Int, Float (и прочими): Int.Parse(string) и Int.TryParse(string). Первый в случае ошибки бросает исключение, второй молча возвращает 0. В зависимости от логики используется либо то, либо то.