#2 Практическое задание №2 -- Добавляем ещё одно поле в модель статьи

Что надо сделать

  1. Добавить возможность в админке скрывать временно некоторые статьи сайта -- т.е. в админке показываются все статьи, а на главной только активные.
  2. В админке в списке статей указать какая статья активна, а какая нет.

Это же задание на видео: https://youtu.be/esOk5t_wYMk

Возможные шаги

Делать задачу можно в таком порядке:

View (вью) -- что это в программировании (представление, файл представления)

View ("вид") -- часть программы (файл с кодом или группа таких файлов), которая отвечает за отображение данных для пользователя.
Термин очень часто встречается когда говорят о подходе MVC.

Обёртка -- что это в программировании

Общее определение

Обёртка -- некая часть программы, вызывающая внутри себя другую часть программы, при этом не сильно или вообще не меняющая результат/алгоритм работы этой вызываемой внутри программы, но меняющая способ вызова (обычно сделать его более удобным/возможным)

Обёртка над функцией (функция-обертка)


Функция-обёртка
-- это функция, которая использует другую функцию, что-то незначительно меняя.

php Indirect modification of overloaded property ... has no effect -- Ошибка при работе с виртуальными свойствами (часто в MVC)

Indirect modification of overloaded property ... has no effect

В моем случае я пытаюсь записать значение в массив.

Причина

Скорее всего вы пишити что-то вроде:

$this->report_ids[] = $report->_id; // добавляем в массив

но при этом у вас нет реального поля report_ids, а используются магические методы _set и _get
-- поэтому когда вы пишите так как выше обращение вида:

yii2 Виртуальные атрибуты -- что это такое (для yii все версий)

Виртуальный атрибут -- это по сути атрибут, доступ к которому возможен на основе создания специального метода, начинающегося с get...

-- то естьэто атрибуты, которые в реальности сами в базу не пишутся, а используют "реальные" атрибуты.

yii2 ActiveRecord Публичные поле (свойства) модели и метод attributes -- что пишется в базу, -- записывает не все атрибу

По-идее attributes() по умолчанию возвращает как раз все нестатические публичные поля, но его поведение можно и переопределить.

Проблема

В базу почемуто пишутся только те значения из attributes, которых нет как публичных полей.

Возможные решения

Собственно решение

yii2 mongodb ActiveRecord Сортировка

По-идее так же как и в любой эктиврекорд:

$sort = 'ASC';
$reports = Report::find()
		->where(['in', '_id', $this->report_ids])
		->orderBy("creation_data $sort")
		->all();

yii2 Несколько моделей в одной таблице/коллекции -- шаблон проектирования

Можно использовать подход от Александра Макарова: https://github.com/samdark/yii2-cookbook...

Спасибо за ссылку Н.Гр.

UpdateAll() DeleteAll() для mongodb

Эти методы можно определить в базовом классе так:

#1 Практическое задание №1 -- Создание простого сайта на php и MySQL

Задание

Практическое задание: заменяем вывод поля краткого содержания на вывод первых 50-ти символов поля (столбца таблицы) content + многочия: https://youtu.be/sUh72-zxkEE

Код решения можно написать ниже (основное) и/или дать ссылку на гитхаб
------
Остальные уроки этой серии: http://fkn.ktu10.com/?q=node/9428

Pages

Subscribe to fkn+antitotal RSS