yii rules如何添加一个非数据库字段的验证?

发布于 2022-09-05 09:55:12 字数 49 浏览 14 评论 0

比如我想添加一个A字段的验证,但数据库里没有,这个时候会报错,有什么参数可以设置吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

任性一次 2022-09-12 09:55:12
namespace common\models;

use Yii;

/**
 * This is the model class for table "{{%org_class}}".
 *
 * @property string $id
 * @property string $name
 * @property string $org_id
 * @property string $description
 */
class OrgClass extends \yii\db\ActiveRecord
{
    public $phone;//数据库中没有的字段
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%org_class}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['id','phone'], 'required'],
            [['id', 'org_id'], 'string', 'max' => 32],
            [['name'], 'string', 'max' => 128],
            [['description'], 'string', 'max' => 256],
            [['phone'],'integer','length'=>'11'],//对自己定义的字段添加验证
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => Yii::t('common', 'GUID'),
            'name' => Yii::t('common', '分类名称'),
            'org_id' => Yii::t('common', '创建该分类的组织ID,和dj_org表关联'),
            'description' => Yii::t('common', '分类简要描述'),
            'phone'=>Yii::t('common','手机')
        ];
    }

    /**
     * @inheritdoc
     * @return OrgClassQuery the active query used by this AR class.
     */
    public static function find()
    {
        return new OrgClassQuery(get_called_class());
    }
}
昵称有卵用 2022-09-12 09:55:12

重写rules方法

class Model extends \yii\db\ActiveRecord
{
    //...
    public function rules() {
        $rules = parent::rules();
        $rules[] = [['phone'],'integer','message'=>'手机号码必须是数字'];
        return $rules;
    }
    //...
}
我一向站在原地 2022-09-12 09:55:12

在model中先添加这个成员变量啊,参照高级版中注册登陆的表单模型。

橘虞初梦 2022-09-12 09:55:12

先在rule上面声明这个变量

2022-09-12 09:55:12

数据库会报错,说没这个字段

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文