Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Дополнительные возможности

MV позволяет делать дополнительную обработку данных внутри методов ядра. Для этого необходимо например перегрузить в модели функцию из ядра.

Дополнительная проверка данных в модели

Допустим необходимо вносить данные в формате процентов "12%". Нам необходимо проверить введенные данные на соответствие шаблону регулярного выражения.

<?
class Discount extends Model
{
    protected $name = "Скидки";

    protected $name_field = "amount";

    protected $model_elements = array(
       array("Активация", "bool", "active", array("on_create" => true)),
       array("Величина скидки, %", "char", "amount", array("required" => true, "help_text" => "пример 10%, 17%, 30%")),
       array("Сумма, от", "int", "summ_from", array("required" => true)),
       array("Сумма, до", "int", "summ_to", array("zero_allowed" => false))
    );

    public function validate()
    {
        $amount = $this -> elements["amount"] -> getValue();
        if($amount && !preg_match("/^[1-9]d?%$/", $amount))
            $this -> errors[] = "Величина скидки должна быть задана целым числом с % на конце.";
        return parent :: validate();
    }
}
?>

Получение и изменение значений полей модели

Из объекта модели можно получить свойства ее полей, а также установить полям новые свойства.

  • getFieldProperty($field, $property) - получить значение свойства $property поля $field
  • setFieldProperty($field, $property, $value) - установить значение равное $value свойства $property поля $field
$value = $mv -> discount -> getFieldProperty("summ_to", "zero_allowed"); 

if( ... ) 
    $mv -> discount -> setFieldProperty("summ_to", "zero_allowed", true);

Преобразование значений полей в таблице административной панели

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

  • processAdminModelTableFields($name, $row) - где $name - название поля, $row - массив значений всех полей включая id.
//Добавляем метод в модель и в колонке с весами рядом со значениями будут стоять "кг"
public function processAdminModelTableFields($name, $row)
{
    if($name = "weight" && $row[$name])
        return $row[$name]." кг";
}

Следующий раздел

Общие принципы шаблонов