【问题标题】:How to add a fuction in a model yii2如何在模型yii2中添加功能
【发布时间】:2018-05-17 23:33:52
【问题描述】:

我修改了我的注册表单,我添加了一个名为 billCode 的字段,所以我想在我的 signForm 模型中添加一个随机整数函数,我有一个随机整数函数,我将它放入注册表单模型中,如下所示

class SignupForm extends Model {
    // ...
    // ...

    public static function randomNumber()
    {
        $randBill = '';
        for ($i=0; $i < 8; $i++){
            $randBill .= mt_rand(0, 9);
        }
        return  $randBill;
    }

    public function signup()
    {
        if (!$this->validate()) {
            return null;
        }

        $user = new User();
        $user->username = $this->username;
        $user->email = $this->email;
        $user->setPassword($this->password);
        $user->generateAuthKey();

        $user->billCode = randomNumber();

        return $user->save() ? $user : null;
    }
}

当我在注册表单中按下提交按钮时,yii2 一直给我这个错误

调用未定义函数 frontend\models\randomNumber()

有什么帮助吗?

【问题讨论】:

  • randomNumber 是一个静态函数,不能只通过randomNumber() 调用。使用self::randomNumber() 可以工作。
  • @paul,非常感谢,它可以工作
  • 不客气。 :)
  • @paul 将其添加为答案,否则让我回答:)
  • @InsaneSkull :)

标签: yii2


【解决方案1】:

从评论中复制

randomNumber 是一个静态函数,不能只通过randomNumber() 调用它。使用self::randomNumber() 可能是可行的。

【讨论】:

    【解决方案2】:

    您可以通过self关键字调用它

    class SignupForm extends Model {
        // ...
        // ...
    
        public static function randomNumber()
        {
            $randBill = '';
            for ($i=0; $i < 8; $i++){
                $randBill .= mt_rand(0, 9);
            }
            return  $randBill;
        }
    
        public function signup()
        {
            if (!$this->validate()) {
                return null;
            }
    
            $user = new User();
            $user->username = $this->username;
            $user->email = $this->email;
            $user->setPassword($this->password);
            $user->generateAuthKey();
    
            //$user->billCode = $this->randomNumber();
           $user->billCode = self::randomNumber();
    
            return $user->save() ? $user : null;
        }
    }
    

    【讨论】:

    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多