YII2 dropdownlist (випадаючий список), web-sprints

Фреймворк yii2 надає безліч корисних функцій для генерації HTML коду, одна з таких - dropdownlist . Ця функція належить класуHTML і використовується в уявленнях для відображеннявипадаючого списку :

yii2

Перш ніж використовувати методdropdownlist необхідно на початку файлу, нашого подання оголосити класHTML :

Зараз існує два способи використання цієї функції:

  • Через екземпляр класActiveForm
  • Безпосередньо через статичний класHTML

Я волію користуватися другим способом через його стислості, але ми розглянемо обидва варіанти. Для об'єктаActiveForm код буде виглядати так:

У цьому коді ми через метод field, класу ActiveForm, задаємо модель і викликаємо функціюdropDownList. Давайте відразу ж розглянемо другий варіант, а потім поговоримо про параметри цієї функції.

Як видно, обидва способи не сильно відрізняються.

Аргументи в dropdownlist

Функція dropdownlist приймає 4 аргументи, якщо оголошена через клас HTML і 2 якщо оголошена через клас ActiveForm, тому що в даному випадку перші два параметри встановлюються з функції field. Розглянемо всі 4 аргументи:

  1. $name — ім'я поля форми, яке встановлюється для подальшого оброблення запиту на сервері. У прикладі вище видно рядок - name = cat, це значення і встановлює даний параметр.
  2. $selected — другий параметр служить визначення значення за промовчанням, тобто присвоює певному полю option значення selected. Але застосування даної властивості відрізняється для способу використання dropdownlist по цьому ми розглянь його докладніше нижче.
  3. $items — приймає одновимірний масив, з якого генерує поля option, де value — ключі масиву, а вміст між тегами — значення ключів масиву. Також розглянемо цей параметр докладніше.
  4. $options (не обов'язковий аргумент) - масив із параметрами. Докладніше тут.

Значення в dropdownlist

Третій аргумент $items визначає, які будуть значення в нашому списку. Найчастіше разом з dropdownlist використовується функція map() класу ArrayHelper для того, щоб модель класу ActiveRecord перетворити на необхідний масив. Наприклад: