параметр в роуте, указал аннотацию в контроллере. Какие то ещё телодвижения нужно совершить? Может у меня фреймворк старый? Версия третья
                  
                  
                
Там не достаточно гидратора. Попозже распишу как сделать
 Leonid
                          Vasenin
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Leonid
                          Vasenin
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Гидратор поддерживает атрибуты, позволяющий из разных мест доставать значения, которые могут использоваться для наполнения свойств в гидрируемых объектах. Из коробки будут предоставляться только те атрибуты, которые не требуют дополнительных зависимостей. Вот тут они лежат. Временно до релиза в пакете гидратора также лежит атрибут RouteArgument, достающий значения аргументов из роута. Перед релизом гидратора он будет перемещён в пакет Yii Router. В пакете Yii Input HTTP лежат дополнительные атрибуты, которые достают различные значения из запроса, вот они. За наполнение параметров экшена контроллера отвечает диспетчер мидлварей, который можно расширить так, чтобы он обрабатывал и атрибуты гидратора. Вот по шагам настройка: 1) Проверяем, что версия yiisoft/middleware-dispatcher в приложении не ниже 5.1. Если ниже - обновить. 2) Ставим yiisoft/hydrator и yiisoft/input-http. 3) В контейнер добавляем конфигурацию, указывающую гидратору работать с контейнером. Пример в демо. 4) Чтобы работали атрибуты, достающий значения из объекта запроса нужно этот запрос "поймать". Это можно сделать одним из двух способов: - Использовать резолвер атрибутов гидратора RequestCatcherParametersResolver для диспетчера мидлварей. - Добавить мидлварь RequestCatcherMiddleware в набор мидлварей. Я реализовывал в демо первый вариант. 5) Конфигурируем диспетчер мидлварей таким образом, чтобы он обрабатывал атрибуты гидратора, для этого нужно использовать HydratorAttributeParametersResolver из Yii Input HTTP. Шаги 4 и 5 - Пример в демо.
Обсуждают сегодня