通过行为填充Yii2模型

时间:2015-02-04 18:51:54

标签: php yii2 behavior

我正在尝试使用行为为属性分配值,但无论我传递给$this->owner->property的值是什么,模型都会将此数字“127”分配给属性并保存。我无法弄清楚这个数字的来源。

namespace common\behaviors;

use yii\db\ActiveRecord;
use yii\base\Behavior;

class MyBehavior extends Behavior
{
    public function events()
    {
        return [
            ActiveRecord::EVENT_BEFORE_INSERT => 'test',
            ActiveRecord::EVENT_BEFORE_UPDATE => 'test',
        ];
    }

    public function test()
    {
        $this->owner->property = 444;
    }
} 

如果我在前端的Web表单上填充此属性,模型将保存正确的值。 我将property添加到模型的规则中,但这没有任何区别。

1 个答案:

答案 0 :(得分:1)

对我感到羞耻,我在创建SQL表时犯了这么愚蠢的错误:(我将tinyint类型分配给property字段,这就是为什么它总是保存127 - 这类字段允许的最大值。