Метод Phalcon\Mvc\Model::beforeCreate()

Если я попытаюсь сохранить модель с полем date_created, определенным в методе beforeCreate(), она не сохранится:

class TestEntity extends Phalcon\Mvc\Model
{

    public function beforeCreate()
    {
        $this->date_created = date('Y-m-d H:i:s');
    }

    /**
     * Returns source table name
     * @return string
     */
    public function getSource()
    {
        return 'test_entity';
    }
}

Контекст действия контроллера:

$test = new TestEntity();
$test->name = 'test';
var_dump($contact->save()); // gives false
var_dump($contact->getMessages()); // says date_created is not defined

person avasin    schedule 01.02.2013    source источник
comment
Поле в таблице test_entity называется date_created?   -  person Nikolaos Dimopoulos    schedule 01.02.2013
comment
@NikolaosDimopoulos необходимо было использовать немного другой метод, beforeValidationOnCreate(), как сказал twistedxtra. Спасибо :)   -  person avasin    schedule 02.02.2013


Ответы (1)


Вам необходимо назначить дату создания до того, как будет выполнена нулевая проверка:

<?php

class TestEntity extends Phalcon\Mvc\Model
{

    public function beforeValidationOnCreate()
    {
        $this->date_created = date('Y-m-d H:i:s');
    }

    /**
     * Returns source table name
     * @return string
     */
    public function getSource()
    {
        return 'test_entity';
    }
}
person twistedxtra    schedule 01.02.2013
comment
А как насчет модифицированного_ата? Если я хочу обновить модифицированный_ат при обновлении записи? Спасибо - person Hoang Trinh; 20.03.2015
comment
@piavgh, вы можете использовать метод beforeUpdate() или метод beforeValidationOnUpdate(), если поля, которые вы изменяете, будут проходить проверку. Дополнительную информацию можно найти здесь: docs.phalconphp.com/en/latest/reference /models.html - person brendonofficial; 15.06.2016