Yii2 моделі

У результаті ми маємо отримати приблизно таку картину:

поле

Сучасні тенденції та підходи у веб-розробці

Дізнайтеся алгоритм швидкого зростання з нуля у сайтобудуванні

язку

поле

моделі

Сучасні тенденції та підходи у веб-розробці

Дізнайтеся алгоритм швидкого зростання з нуля у сайтобудуванні

Ну а тепер необхідно зв'язати моделі, використовуючи метод геттеру. У класі Post створимо наступний метод:

Давайте розберемо цей спосіб. Почнемо з назви - getCategory. Фактично це ім'я зв'язку, яке скаже нам, що метод встановлює зв'язок із Category. Метод звертається до методу одного, який описує зв'язок один до одного. Першим параметром методу hasOne() ми повинні передати ім'я класу моделі, з якою необхідно встановити зв'язок. Робити це рекомендується саме так, як ми прописали в коді Назва Моделі ::className(). Другим параметром ми передаємо масив, де ключем виступає поле таблиці, з якою зв'язуємося, а значенням — поле поточної таблиці. У нашому прикладі ключ id – це поле category. id, значення - post. category_id.

Як отримати доступ до зв'язаних даних? Простіше простого. Після визначення зв'язку нам доступна віртуальна властивість з ім'ям геттера зв'язку. Оскільки гетер ми назвали getCategory, віртуальна властивість називатиметься category. Чому віртуальне? Тому що в об'єктах масиву $posts у нас зараз не буде такої якості. Проте, якщо ми звернемося зараз у циклі до цієї властивості, ми отримаємо зв'язані дані. Давайте спробуємо зробити це у виставі.